一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

簡(jiǎn)述RT-Thread Studio燒寫(xiě)國(guó)產(chǎn)MCU(SWM32S)固件的方法

電子工程師 ? 來(lái)源:CSDN技術(shù)社區(qū) ? 作者:wenbodong ? 2021-06-04 11:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

筆者最近在試用一款華芯微特的MCU,SWM32SRET6。其片上有FLASH 512KB, RAM 128KB, 內(nèi)部集成了TFT LCD控制器,并內(nèi)置8MB SDRAM,面向家電、工業(yè)控制消費(fèi)電子等需求屏驅(qū)應(yīng)用的場(chǎng)景。這款芯片支持RT-Thread,這也是筆者試用它的重要原因。

d6c6a1c0-c4c6-11eb-9e57-12bb97331649.png

d73f8bbc-c4c6-11eb-9e57-12bb97331649.png

d7621722-c4c6-11eb-9e57-12bb97331649.png

d7b0b1ca-c4c6-11eb-9e57-12bb97331649.png

d7de6c5a-c4c6-11eb-9e57-12bb97331649.png

Keil內(nèi)置了一些mcu的下載算法,比如綠線勾劃的。同時(shí),Keil也為mcu廠商提供了添加下載算法的方法,即放在DFP之中

d82acfdc-c4c6-11eb-9e57-12bb97331649.png

再轉(zhuǎn)回RT-Thread Studio,是一樣的道理。RT-Thread Studio使用JLinkGDBServerCL.exe進(jìn)行固件下載和調(diào)試,J-Link同樣需要下載算法。Supported devices - J-Link列舉了其支持的mcu。對(duì)于不支持的,需要額外添加下載算法。

Supported devices - J-Link
https://www.segger.com/downloads/supported-devices.php

在講具體的方法之前,我們先思考一下,為什么需要下載算法?

SWJ-DP

d84b08ec-c4c6-11eb-9e57-12bb97331649.png

同樣,swm320也是Cortex-M4內(nèi)核,也內(nèi)嵌了與stm32f4xx一樣的SWJ-DP。那么J-Link在下載時(shí)為何需要針對(duì)不同的mcu(即使是相同的cortex內(nèi)核)選擇不同的下載算法呢?

原因很簡(jiǎn)單,雖然swm320與stm32f4xx擁有相同的Cortex-M4內(nèi)核和SWJ-DP,但是它們的外設(shè)是由廠商自行設(shè)計(jì),包括片內(nèi)Flash。從片內(nèi)Flash讀取數(shù)據(jù)與從RAM讀取數(shù)據(jù)一樣,執(zhí)行ARM的讀取指令即可。而向片內(nèi)Flash寫(xiě)入數(shù)據(jù),即所謂的編程,則要復(fù)雜一些。

下載算法

準(zhǔn)確的說(shuō),對(duì)于J-Link來(lái)說(shuō),其下載固件到mcu中,需要一個(gè)加載程序Flashloader。Open_Flashloader詳細(xì)講述了如何去為一個(gè)新的mcu指定Flashloader。

Open_Flashloader
https://wiki.segger.com/Open_Flashloader

可以指定兩種類型的FlashLoader:

按Open_Flashloader文章的方法開(kāi)發(fā)出的FlashLoader,是一個(gè)elf格式的可執(zhí)行程序。

CMSIS flash loader,通常是FLM格式。

這個(gè)FLM,有沒(méi)有感覺(jué)很親切呢?這就是廠家提供的DFP中的那個(gè)東西,也正是Keil所使用的下載算法。把其添加到J-Link軟件之中即可。

找到RT-Thread Studio所使用的J-Link軟件目錄,筆者的為:

dc5bba62-c4c6-11eb-9e57-12bb97331649.png

ChipInfo是設(shè)備的基本信息,指定內(nèi)核類型、RAM地址和大小。

Vendor 設(shè)備商名稱
Name 設(shè)備名稱,在工程調(diào)試配置里面會(huì)用到.
WorkRAMAddr 十六進(jìn)制格式的RAM首地址,與WorkRAMSize一起指定了J-Link下載固件時(shí)可用的內(nèi)存空間。一般可指定為MCU的整個(gè)RAM空間。
WorkRAMSize 十六進(jìn)制格式的RAM大小,單位是字節(jié)。
Core MCU內(nèi)核,比如Cotex-M4對(duì)應(yīng)為JLINK_CORE_CORTEX_M4。
參數(shù) 含義

FlashBankInfo指定設(shè)備Flash的空間以及下載算法。

Name 給人看的,取個(gè)有意義的即可。比如片內(nèi)Flash可命名為Internal Flash。
BaseAddr 十六進(jìn)制格式的Flash首地址,與MaxSize一起指定了Flash的空間。
MaxSize 十六進(jìn)制格式的Flash大小,單位是字節(jié)。
Loader FlashLoader的路徑,可為相對(duì)路徑,也可為絕對(duì)路徑。如果是相對(duì)路徑,則其為相對(duì)于JLinkDevices.xml文件的位置。如前所述,可以是elf也可以是FLM。
LoaderType FlashLoader的類型。目前只能為FLASH_ALGO_TYPE_OPEN。
AlwaysPresent 對(duì)于片內(nèi)Flash,此值為1,表示本塊Flash是始終存在的。
參數(shù) 含義

dc74207a-c4c6-11eb-9e57-12bb97331649.png

在此之前,筆者還用過(guò)一款國(guó)產(chǎn)MCU(華大的HC32L110)。這兩個(gè)廠商的產(chǎn)品有一個(gè)共同之處:只支持在Keil和IAR中開(kāi)發(fā)。看過(guò)筆者飛控移植系列文章的同學(xué)應(yīng)該有印象,筆者喜歡使用Eclipse家族的IDE,而不喜歡Keil,因?yàn)樗拇a瀏覽和編輯功能太簡(jiǎn)陋。

Eclipse家族IDE不能用于開(kāi)發(fā)這些國(guó)產(chǎn)MCU,最大的問(wèn)題就是在于下載和調(diào)試,也就是本文遇到的問(wèn)題。筆者當(dāng)初在使用HC32L110的時(shí)候,選擇了一個(gè)折衷的方法。在TRUEStudio(一款Eclipse IDE)中編寫(xiě)代碼,也可編譯以查看語(yǔ)法錯(cuò)誤。而真正的編譯固件和下載調(diào)試,則在Keil之中進(jìn)行。這次看到RT-Thread Studio可以創(chuàng)建出swm320的工程,然而最終還是卡在了下載。筆者不想再妥協(xié)了,于是有了這篇文章。本文的方法不局限于華芯微特的MCU,是一個(gè)通用的解決方案噢。

添加下載算法一節(jié)提到兩種方法,這次選擇了第2種,一個(gè)快速而簡(jiǎn)單的方案。其實(shí)筆者在看Open Flashloader那篇wiki時(shí),正襟危坐,仔細(xì)閱讀,準(zhǔn)備大干一翻,自己來(lái)開(kāi)發(fā)這個(gè)Flashloader。這應(yīng)該會(huì)是一次有趣的體驗(yàn),有空時(shí)搞一把,到時(shí)會(huì)分享給大家。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17984

    瀏覽量

    367088
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    17113

    瀏覽量

    184355
  • IAR
    IAR
    +關(guān)注

    關(guān)注

    5

    文章

    381

    瀏覽量

    37472
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70758
  • DP
    DP
    +關(guān)注

    關(guān)注

    1

    文章

    235

    瀏覽量

    40860

原文標(biāo)題:RT-Thread Studio燒寫(xiě)國(guó)產(chǎn)MCU(SWM32S)固件的方法

文章出處:【微信號(hào):gh_ed4f95bde4df,微信公眾號(hào):華芯微特32位MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    用SPI玩轉(zhuǎn)WiFi,RT-Thread ESP-Hosted驅(qū)動(dòng)深度適配指南 | 技術(shù)集結(jié)

    還在為MCU的WiFi連接方案發(fā)愁?RT-Thread社區(qū)開(kāi)源ESP-Hosted驅(qū)動(dòng),通過(guò)標(biāo)準(zhǔn)SPI接口即可實(shí)現(xiàn),并且該倉(cāng)庫(kù)已整理成RT-Thread軟件包。RT
    的頭像 發(fā)表于 07-09 19:03 ?437次閱讀
    用SPI玩轉(zhuǎn)WiFi,<b class='flag-5'>RT-Thread</b> ESP-Hosted驅(qū)動(dòng)深度適配指南 | 技術(shù)集結(jié)

    如何在rt-thread studio上開(kāi)發(fā)STM32H747IIT6?

    如題,我希望在rt-thread studio上開(kāi)發(fā)STM32H747IIT6這款雙核單片機(jī),在keil里兩個(gè)核的代碼是完全隔離的,分別在兩個(gè)工程中編寫(xiě)。 但是在rt-thread stud
    發(fā)表于 06-11 06:24

    RT-Thread Studio為什么無(wú)法執(zhí)行MI命令?

    我再使用RT-Thread Studio時(shí),在使用調(diào)試功能時(shí)出現(xiàn)了下面問(wèn)題,導(dǎo)致這個(gè)問(wèn)題的原因可能是什么?
    發(fā)表于 06-10 06:30

    使用RT-Thread Studio在程序進(jìn)Hardfault時(shí)怎么方便的查看調(diào)用棧?

    使用RT-Thread Studio在程序進(jìn)Hardfault時(shí)怎么方便的查看調(diào)用棧 使用MDK的時(shí)候可以方便的看調(diào)用堆棧,從而很快速的找到問(wèn)題,使用RT-Thread Studio
    發(fā)表于 04-01 07:32

    RT-Thread Studio建工程,為什么找不到這個(gè)STM32U系列的片子?

    我用STM32U575VGT6片子做物聯(lián)網(wǎng)項(xiàng)目,聽(tīng)聞國(guó)內(nèi)開(kāi)源的RTT很厲害,功能強(qiáng)大,資源齊全,社區(qū)資料多。 但是我用RT-Thread Studio建工程,不管是基于開(kāi)發(fā)板還是基于MCU,都找不到
    發(fā)表于 03-10 07:22

    請(qǐng)問(wèn)使用RT-Thread Studio在程序進(jìn)Hardfault時(shí)怎么方便查看調(diào)用棧?

    求助各位大神 使用RT-Thread Studio在程序進(jìn)Hardfault時(shí)怎么方便的查看調(diào)用棧 使用MDK的時(shí)候可以方便的看調(diào)用堆棧,從而很快速的找到問(wèn)題,使用RT-Thread Stud
    發(fā)表于 03-03 08:10

    如何將RT-Thread移植到NXP MCUXPressoIDE上

    RT-Thread默認(rèn)支持的IDE只有IAR 和 Keil, 那如何將RT-Thread移植到NXP MCUXPressoIDE上呢?本文內(nèi)容比較簡(jiǎn)單但稍有瑣碎,希望對(duì)有需要的小伙伴有所幫助。
    的頭像 發(fā)表于 02-13 10:37 ?1925次閱讀
    如何將<b class='flag-5'>RT-Thread</b>移植到NXP MCUXPressoIDE上

    S32K146 RT-Thread】之 使用SFUD組件驅(qū)動(dòng)spi flash

    S32K146 RT-Thread】之 使用SFUD組件驅(qū)動(dòng)spi flash
    的頭像 發(fā)表于 11-21 01:05 ?1138次閱讀
    【<b class='flag-5'>S</b>32K146 <b class='flag-5'>RT-Thread</b>】之 使用SFUD組件驅(qū)動(dòng)spi flash

    RT-Thread上CAN實(shí)踐

    開(kāi)箱測(cè)試RT-Thread官方已完成了對(duì)英飛凌XMC7200EVK的移植,通過(guò)shell可以看到做好了uart3的console。本文將介紹如何進(jìn)行RT-ThreadCan移植。接下來(lái)我們要完成CAN_FD的驅(qū)動(dòng)移植,并正常啟動(dòng)RT-T
    的頭像 發(fā)表于 11-13 01:03 ?2125次閱讀
    <b class='flag-5'>RT-Thread</b>上CAN實(shí)踐

    S32K146 RT-thread】之 SPI驅(qū)動(dòng)適配

    概述RT-Thread對(duì)SPI總線的驅(qū)動(dòng),抽象出了spibus的設(shè)備驅(qū)動(dòng),我們基于S32K146的硬件學(xué)習(xí)spibus設(shè)備驅(qū)動(dòng)。
    的頭像 發(fā)表于 11-01 08:11 ?1287次閱讀
    【<b class='flag-5'>S</b>32K146 <b class='flag-5'>RT-thread</b>】之 SPI驅(qū)動(dòng)適配

    rt-thread studio導(dǎo)入bsp失敗的原因?

    rt-thread studio導(dǎo)入bsp失敗,bsp:gd32470z-lckfb
    發(fā)表于 09-27 09:54

    rt-thread studio導(dǎo)入bsp失敗的原因?

    rt-thread studio導(dǎo)入bsp失敗,bsp:gd32470z-lckfb
    發(fā)表于 09-13 07:49

    rt-thread studio手動(dòng)導(dǎo)入bsp失敗的原因?怎么處理?

    rt-thread studio 手動(dòng)導(dǎo)入bsp 失敗。 版本: 2.2.8 構(gòu)建ID: 202405200930 導(dǎo)入的bsp 是直接從rt-thread 代碼倉(cāng)庫(kù)下載的
    發(fā)表于 09-13 06:45

    如何在RT-thread studio的裸機(jī)例程上移植freertos?

    如何在RT-thread studio的裸機(jī)例程上移植freertos
    發(fā)表于 09-13 06:32

    2024 RT-Thread全球巡回 線下培訓(xùn)火熱來(lái)襲!

    親愛(ài)的RT-Thread社區(qū)成員們:我們非常高興地宣布,2024年RT-Thread全球開(kāi)發(fā)者線下培訓(xùn)即將拉開(kāi)帷幕!24年全球巡回培訓(xùn)將覆蓋超10座城市及國(guó)家,為開(kāi)發(fā)者提供一個(gè)深入學(xué)習(xí)RT-Thread嵌入式開(kāi)發(fā)的絕佳機(jī)會(huì)。
    的頭像 發(fā)表于 08-07 08:35 ?2963次閱讀
    2024 <b class='flag-5'>RT-Thread</b>全球巡回 線下培訓(xùn)火熱來(lái)襲!