在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

MSPBoot的代碼移植流程

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2022-01-13 15:32 ? 次閱讀

TIMSP430支持在主程序中加載Bootloader的方式進行在線升級操作,通過在線升級功能,客戶可以通過外部處理器隨時更新MSP430內部的程序及Bug 的遠程修復。同時TI也提供了基于MSP430G2553的參考代碼,本文詳細的介紹了如何將MSP430G2553的Bootloader移植到MSP430G2755中,使用MSP 430G2553 Host對MSP430G2755 Device進行的升級操作。

1. MSP430 Main Memory Bootloader介紹

在MSP430G2xx 中實際上具有一個ROM版本的BSL(Bootloader) ,但是這個BSL僅僅支持外部MCU通過UART進行在線升級,而且而且所有的協議全部固化,無法進行修改或者更改其他接口方式進行升級操作。所以這個需要一個可以在主程序中運行的Bootloader,可以讓外部MCU進行用戶自定義的升級操作。同時TI也提供了一個基于MSP430G2553的參考例程,可以通過如下鏈接進行下載。http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSPBoot/latest/index_FDS.html

本文使用的參考代碼版本為MSPBoot_1_01_00_00,下圖為MSPBoot的整個軟件框架。

2. MSPBoot的代碼移植流程

2.1 MS430G2755 CMD 文件的產生

首先用Per工具產生CMD文件(Generating Linker Files), 通過Per的工具會產生兩個CMD文件,其中一個給MSP430G2755的Bootloader使用,另一個給MSP430G2755的應用程序使用。操作指令如下,

C:\Users\a0223791\Desktop\MSP430-BSL-IAP\MSPBoot_1_01_00_00\linkerGen>perl MSPBo

otLinkerGen.pl -file lnk_msp430G2755_Uart_1KB -dev MSP430G2755 -params 0x8000 0x

FFE0 0xFC00 48 6 0x1100 0x20FF 0x80 0x1000 0x10BF

這里面有幾個重要的參數說明如下,

<0x8000 > = Start address of Flash/FRAM

對于MSP430G2553地址為0xC000,而MSP430G2755的地址需要修改為0x8000
<0xFFE0 > = Address of interrupt vector table

中斷向量表的地址0xFFE0,對于MSP430G2553和MSP430G2755相同
<0xFC00> = Start address of Bootloader

Bootloader的起始地址0xFC00,對于兩者也是相同的
<48 > =Size of the proxy table

這里的48對應于12個中斷向量,每個中斷向量占用4Byte
<6> = Size of shared vectors

在應用程序中一共有3個(P1/Time/Dummy)中斷向量,每個中斷向量占用2Byte,對應參數為6
<0x1100> = Start address of RAM

RAM的起始地址也需要修改為MSP430G2755的0x1100
<0x20FF > = End address of RAM

RAM的結束地址也需要修改為MSP430G2755的0x20FF
<0x80> = Size of the stack

MSP430G2755默認的堆棧大小為0x80
<0x1000> = Start address of info memory used for bootloader

Information的起始和結束地址MSP430G2553和MSP430G2755一致,無需修改
<0x10BF > = End address of info memory used for bootloader

Information的起始和結束地址MSP430G2553和MSP430G2755一致,無需修改

注意如上修改的參數6,及中斷向量的數量,在Bootloader中的中斷向量不需要修改,只修改MSP430G2755應用程序App中的中斷向量即可,通過下圖可以直觀看到中斷向量的在Bin文件中的分布。

圖二 MSP430G2755中斷向量

圖三 MSP430G2755 Bin文件對應虛擬中斷向量表

注意在這里的809C 和80E2 就對應MSP430G2755應用程序中的P1_Isr 和Timer_A,GPIO中斷和定時器中斷。下圖會看到在MSP430G2755 Bootloader中虛擬中斷向量表的分布。

圖四MSP430G2755 Bootloader虛擬中斷向量表

2.2 工程CMD文件添加

將2.1步驟中產生的CMD文件,分別添加到MSP430G2755的Bootloader及應用程序App的工程中,如下圖所示

圖5 MSP540G2755 CMD文件

特別注意,如果使用的是TI默認的MSP430G2553的工程,需要將原工程的器件型號選擇為MSP430G2755,并且把MSP430G2755自帶的G2553的CMD文件刪除掉,使用生成MSP430G2755的CMD文件。

2.3 應用程序txt轉化c文件

通過CCS編譯器,編譯MSP430G2755的應用程序,編譯完成后會產生一個txt文件下載格式,我們需要將這個產生的txt文件轉換為.c文件,這個.c文件才能給主控MCU使用,通過Bootloader下載到MSP430G2755中。轉化運行指令如下,

C:\Users\ a0223791\Desktop\MSP430-BSL-IAP\G2755_Porting\MSPBoot_1_01_00_00\430txt

_converter>430txt2C.pl App1_MSPBoot.txt AppForHostG2755.c App1

通過這步將生成的.c文件,添加到主MCU中的main函數文件路徑中,在這里我們測試的主控MCU是MSP430G2553,添加后的程序如下圖所示。

2.4 寫入CRC校驗地址信息

通過上步我們在主控MSP430G2553中添加了需要升級的應用程序,同時我們還要在主MCU中修改目標升級芯片(MSP430G2755)的CRC地址信息,修改參考如下,

注意此時已經不再需要MSPBoot用戶指導手冊中的CRC生成工具,進行CRC的校驗,我們看到其實直接在主MCU中計算了CRC校驗,并且把CRC的值放到指定的位置。

2.5 修改MSP430G2755應用程序

在這測試了將之前MSP430G2553默認的P1.1和P1.2口UART,修改為MSP430G2755硬件P3.4和P3.5口UART接收數據的接口。實際的參考代碼如下,

圖九 MSP430G2755 UART口修改

特別注意,在MSP430G2755應用程序App中,有兩個中斷默認使用即P1口和定時器中斷,不能直接將P1口和Timer的中斷直接屏蔽掉,這樣會導致Host主控MSP430G2553升級MSP430G2553成功后,MSP430G2553并未正常的啟動應用程序。如果在應用程序中不需要這兩個中斷向量,則在第一步產生CMD文件的過程中需要修改<6> = Size of shared vectors 這個參數。

3.小結

通過以上步驟我們完成了從MSP430G2553到MSP430G2755Bootloader的移植,那我們總結MSP430G2755 Bootloader和應用程序App的整個程序架構,分析如下。

我們通過工具讀取了主程序移植了BootLoader的MSP430G2755的總代碼,其中MSP430G2755存儲Flash地址分析如下

從0x8000-0x8100為應用程序

從0xFBC0-0xFBF0 為虛擬的中斷向量表

從0xFC00-0xFFD0 為Bootloder

從0xFFE0-0xFFF0 為真實的中斷向量表

審核編輯:何安

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式處理
    +關注

    關注

    0

    文章

    341

    瀏覽量

    10263
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    STM32與機智云連接實現步驟與技巧(下篇):機智云代碼移植與優化

    在《STM32與機智云連接實現步驟與技巧(上篇)》中,我們介紹了硬件連接和通信協議配置。本篇將重點講解如何將機智云相關代碼移植到STM32,完成數據上傳和設備控制。我們將介紹如何在STM32中配置
    的頭像 發表于 05-23 18:10 ?167次閱讀
    STM32與機智云連接實現步驟與技巧(下篇):機智云<b class='flag-5'>代碼</b><b class='flag-5'>移植</b>與優化

    STM32G431移植FreeModbus

    STM32G431移植FreeModbus 的代碼已通過驗證,在WeActStudio的STM32G431CoreBoard上進行多次測試,均可正常讀取寄存器數值。STM32G431CoreBoard可在我上傳的相關文件下載。
    發表于 04-19 16:50 ?1次下載

    求分享從FRDM-MKL82到MKL81Z128CBH7R的代碼移植指南?

    否有任何從 FRDM-MKL82 到 MKL81Z128CBH7R 的代碼移植指南?
    發表于 03-26 07:28

    在HMI上如何顯示PLC代碼流程呢?

    在HMI(人機界面)上顯示PLC(可編程邏輯控制器)代碼流程,通常涉及以下幾個步驟: 一、創建Graph流程的FB塊 1. 利用FB塊編程:首先,需要創建一個Graph流程的FB塊(功
    的頭像 發表于 03-03 12:09 ?792次閱讀
    在HMI上如何顯示PLC<b class='flag-5'>代碼</b><b class='flag-5'>流程</b>呢?

    詳解Object Detection Demo的移植

    繼上一篇移植了 Mediapipe 的 LLM Inference 后,這篇文章我們將繼續探索 Object Detection Demo 的移植
    的頭像 發表于 02-05 13:42 ?399次閱讀
    詳解Object Detection Demo的<b class='flag-5'>移植</b>

    EE-205:將代碼從ADSP-TS101S TigerSHARC處理器移植到ADSP-TS201S TigerSHARC處理器的注意事項

    電子發燒友網站提供《EE-205:將代碼從ADSP-TS101S TigerSHARC處理器移植到ADSP-TS201S TigerSHARC處理器的注意事項.pdf》資料免費下載
    發表于 01-14 15:15 ?0次下載
    EE-205:將<b class='flag-5'>代碼</b>從ADSP-TS101S TigerSHARC處理器<b class='flag-5'>移植</b>到ADSP-TS201S TigerSHARC處理器的注意事項

    EE-241:SHARC DSP到TigerSHARC處理器代碼移植指南

    電子發燒友網站提供《EE-241:SHARC DSP到TigerSHARC處理器代碼移植指南.pdf》資料免費下載
    發表于 01-13 15:35 ?0次下載
    EE-241:SHARC DSP到TigerSHARC處理器<b class='flag-5'>代碼</b><b class='flag-5'>移植</b>指南

    STM32連接機智云,代碼移植,NTP實時時間獲取(一)

    目錄一、機智云介紹二、固件下載三、項目例程下載四、代碼移植五、代碼編寫準備(已配置完畢,正式開始編寫代碼)六、設備配對與連接七、NTP(網絡時間協議)實現八、網盤資料鏈接機智云介紹廣州
    的頭像 發表于 11-19 01:01 ?1045次閱讀
    STM32連接機智云,<b class='flag-5'>代碼</b><b class='flag-5'>移植</b>,NTP實時時間獲取(一)

    代碼解析工具與自動化流程圖生成解決方案

    ? 摘要:CasePlayer2是一款強大的源代碼解析工具,專門設計用于分析ANSI C、C、C++以及匯編語言源代碼,并自動化地生成流程圖等文件。該工具集成了多種功能,包括MISRA-C規范檢查
    的頭像 發表于 10-10 13:40 ?807次閱讀

    基于機智云移植STM32L496G代碼移植

    代碼詳解-機智云(gizwits.com)在移植的過程中遇到的一些問題,這里我將重構一下,大致內容跟文檔差不多,但是根據文檔的操作,會產生一些奇怪的報錯,這里可以根
    的頭像 發表于 09-20 08:05 ?1043次閱讀
    基于機智云<b class='flag-5'>移植</b>STM32L496G<b class='flag-5'>代碼</b><b class='flag-5'>移植</b>

    【GD32 MCU 移植教程】5、GD32E230 系列移植到 GD32F330 系列

    移植到 GD32F330 系列的需求,本文 檔專門針對既有的 GD32E230 代碼如何移植到 GD32F330 做一個詳細的介紹;
    的頭像 發表于 09-03 10:05 ?2379次閱讀
    【GD32 MCU <b class='flag-5'>移植</b>教程】5、GD32E230 系列<b class='flag-5'>移植</b>到 GD32F330 系列

    LKT(LCS)代碼移植芯片優勢

    所謂代碼移植就是客戶可以把自定義的程序一部分關鍵代碼函數移植到加密芯片中運行。用戶采用標準C語言編寫代碼,通過KEIL C編譯器,編譯并下載
    的頭像 發表于 08-22 10:03 ?1099次閱讀

    基于MM32F5270的Ethernet實現LwIP協議棧移植

    LwIP是輕量化的TCP/IP協議,由瑞典計算機科學院(SICS)的Adam Dunkels 開發的一個小型開源的TCP/IP協議棧。LwIP具有高度可移植性、代碼開源,提供了三種編程接口(API):RAW API、NETCONN API 和 Socket API,用于與
    的頭像 發表于 06-21 10:28 ?1931次閱讀
    基于MM32F5270的Ethernet實現LwIP協議棧<b class='flag-5'>移植</b>

    CC2500和CC1101移植說明

    主要通過如何移植移植注意、關于芯片配置、如何生成導出配置四大步驟來說明CC2500和CC1101移植
    的頭像 發表于 06-15 14:32 ?1012次閱讀
    CC2500和CC1101<b class='flag-5'>移植</b>說明

    代碼移植后數據打印不完全是什么原因?

    當前我使用的是TWAI驅動功能,例程測試下來沒問題,數據打印完善,但是我將代碼twai_self_test例程代碼移植自己的工程之中就會出現數據打印不完全的現象。請問是什么原因。
    發表于 06-14 06:30
    主站蜘蛛池模板: 四虎网站在线播放 | 亚洲国产成人久久一区久久 | 黄色一级毛片在线观看 | 福利片免费一区二区三区 | 国产综合精品久久亚洲 | 手机看片国产免费久久网 | 毛片免费高清免费 | 免费观看色视频 | 亚洲欧美一区二区三区另类 | 日本一区二区三区四区视频 | 亚洲福利视频一区 | 亚洲一区中文字幕在线 | 亚洲a网站| 久青草国产手机在线观 | 狠狠色噜噜狠狠狠狠色综合久 | 99久久综合狠狠综合久久男同 | 久久精品视频99精品视频150 | 小屁孩cao大人免费网站 | 久久婷婷婷| 韩国三级视频网站 | 日韩欧美黄色 | 亚洲国产日韩精品怡红院 | 国产精品一区二区三 | 四虎影院免费观看 | 男女视频免费观看 | 激情五月婷婷小说 | 久色乳综合思思在线视频 | 天天拍天天干天天操 | 都市激情综合网 | 经典三级四虎在线观看 | 青草午夜精品视频在线观看 | 黄色短视频免费看 | 中文字幕天天干 | 噜噜噜久久 | 国外精品视频在线观看免费 | 日本在线视频一区二区三区 | 久久美女精品国产精品亚洲 | a级毛片毛片免费很很综合 a级男女性高爱潮高清试 | 色综合久久一区二区三区 | 国产精品久久久久久久人热 | 精品福利在线视频 |