chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

MSPBoot的代碼移植流程

電子設(shè)計(jì) ? 來源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2022-01-13 15:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

1. MSP430 Main Memory Bootloader介紹

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

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

2. MSPBoot的代碼移植流程

2.1 MS430G2755 CMD 文件的產(chǎn)生

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

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

這里面有幾個(gè)重要的參數(shù)說明如下,

<0x8000 > = Start address of Flash/FRAM

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

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

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

這里的48對(duì)應(yīng)于12個(gè)中斷向量,每個(gè)中斷向量占用4Byte
<6> = Size of shared vectors

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

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

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

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

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

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

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

圖二 MSP430G2755中斷向量

圖三 MSP430G2755 Bin文件對(duì)應(yīng)虛擬中斷向量表

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

圖四MSP430G2755 Bootloader虛擬中斷向量表

2.2 工程CMD文件添加

將2.1步驟中產(chǎn)生的CMD文件,分別添加到MSP430G2755的Bootloader及應(yīng)用程序App的工程中,如下圖所示

圖5 MSP540G2755 CMD文件

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

2.3 應(yīng)用程序txt轉(zhuǎn)化c文件

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

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函數(shù)文件路徑中,在這里我們測(cè)試的主控MCU是MSP430G2553,添加后的程序如下圖所示。

2.4 寫入CRC校驗(yàn)地址信息

通過上步我們?cè)谥骺豈SP430G2553中添加了需要升級(jí)的應(yīng)用程序,同時(shí)我們還要在主MCU中修改目標(biāo)升級(jí)芯片(MSP430G2755)的CRC地址信息,修改參考如下,

注意此時(shí)已經(jīng)不再需要MSPBoot用戶指導(dǎo)手冊(cè)中的CRC生成工具,進(jìn)行CRC的校驗(yàn),我們看到其實(shí)直接在主MCU中計(jì)算了CRC校驗(yàn),并且把CRC的值放到指定的位置。

2.5 修改MSP430G2755應(yīng)用程序

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

圖九 MSP430G2755 UART口修改

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

3.小結(jié)

通過以上步驟我們完成了從MSP430G2553到MSP430G2755Bootloader的移植,那我們總結(jié)MSP430G2755 Bootloader和應(yīng)用程序App的整個(gè)程序架構(gòu),分析如下。

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

從0x8000-0x8100為應(yīng)用程序

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

從0xFC00-0xFFD0 為Bootloder

從0xFFE0-0xFFF0 為真實(shí)的中斷向量表

審核編輯:何安

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

    關(guān)注

    0

    文章

    341

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    RT-Thread 中設(shè)備樹的適配方法 | 技術(shù)集結(jié)

    本文基于RT-Thread現(xiàn)有的DM(設(shè)備模型)框架,以Rock2F開發(fā)板為例,系統(tǒng)梳理了RK3528SoC的快速移植流程,涵蓋了CLK、Pinctrl、ADC、NVMEM、Thermal、RNG等
    的頭像 發(fā)表于 04-04 18:05 ?3088次閱讀
    RT-Thread 中設(shè)備樹的適配方法 | 技術(shù)集結(jié)

    RK3568+Android11 GT911觸控驅(qū)動(dòng)移植與配置實(shí)戰(zhàn)

    在RK3568平臺(tái)的Android11系統(tǒng)開發(fā)中,匯頂GT911作為小尺寸5點(diǎn)電容觸控芯片是常見選型,其驅(qū)動(dòng)移植核心圍繞 設(shè)備樹適配、內(nèi)核編譯配置、驅(qū)動(dòng)代碼微調(diào) 三大環(huán)節(jié)展開。本文結(jié)合實(shí)際項(xiàng)目修改
    的頭像 發(fā)表于 03-19 11:20 ?694次閱讀
    RK3568+Android11 GT911觸控驅(qū)動(dòng)<b class='flag-5'>移植</b>與配置實(shí)戰(zhàn)

    深入解析rk平臺(tái)Android Bootloader核心代碼:從啟動(dòng)流程到AVB驗(yàn)證

    下android_bootloader.c的核心代碼,帶你讀懂Android設(shè)備從Bootloader到內(nèi)核的完整啟動(dòng)邏輯,以及開發(fā)者關(guān)注這些代碼的核心價(jià)值。 一、代碼整體定位 這份代碼
    的頭像 發(fā)表于 01-22 07:06 ?473次閱讀
    深入解析rk平臺(tái)Android Bootloader核心<b class='flag-5'>代碼</b>:從啟動(dòng)<b class='flag-5'>流程</b>到AVB驗(yàn)證

    快速上手!帶你用LVGL工具完成樂鑫科技ESP32-S3 2.8寸串口屏UI開發(fā)!代碼完全開源!

    還在為嵌入式顯示界面的開發(fā)而煩惱嗎?配置環(huán)境復(fù)雜、移植LVGL困難、燒錄過程頻頻出錯(cuò)——這些問題我們都懂。今天,我們將手把手帶你走完啟明云端ESP32-S32.8寸串口屏的完整開發(fā)流程,讓你快速實(shí)現(xiàn)
    的頭像 發(fā)表于 10-30 18:04 ?2373次閱讀
    快速上手!帶你用LVGL工具完成樂鑫科技ESP32-S3 2.8寸串口屏UI開發(fā)!<b class='flag-5'>代碼</b>完全開源!

    2025主流低代碼平臺(tái)有哪些:低代碼開發(fā)平臺(tái)選型指南指南

    在企業(yè)數(shù)字化轉(zhuǎn)型進(jìn)入深水區(qū)的當(dāng)下,低代碼開發(fā)平臺(tái)已從早期的“效率工具”升級(jí)為“核心基建”。其工程化能力、流程適配深度、技術(shù)延展性與行業(yè)積淀,直接決定了企業(yè)轉(zhuǎn)型的成效。據(jù)Gartner預(yù)測(cè),到2026
    的頭像 發(fā)表于 10-22 11:49 ?528次閱讀

    乾芯課堂系列(一)乾芯QXS320F280049 芯片多種通訊方式OTA流程

    對(duì)于初次接觸 IDE 和乾芯F280049 芯片、又需搭建遠(yuǎn)程升級(jí)功能的應(yīng)用開發(fā)者來說,“從零移植 OTA 框架” 往往是道耗時(shí)又棘手的難關(guān)。不過現(xiàn)在,這一難題有了高效解決方案 —— 我們已為乾芯
    發(fā)表于 10-15 13:51

    移植的時(shí)候發(fā)現(xiàn)卡死,為什么?

    請(qǐng)教大佬,我是按照網(wǎng)上的教程來移植的,板子是野火的霸天虎,但是到最后驗(yàn)證的時(shí)候出問題了,發(fā)現(xiàn)board.c文件中的代碼可以運(yùn)行,但就是運(yùn)行不到主函數(shù),而是卡死在以下兩個(gè)函數(shù)中 以下是我的主函數(shù)和board.c文件
    發(fā)表于 09-29 06:28

    恩智浦MCU教程 基于MCUXpresso和FRDM-MCXA346的RT-Thread Nano移植

    本篇還是以移植RT-Thread Nano到MCUXpresso IDE為主,移植代碼可以在nxpic.org.cn論壇搜索到。
    的頭像 發(fā)表于 08-21 09:49 ?6936次閱讀
    恩智浦MCU教程 基于MCUXpresso和FRDM-MCXA346的RT-Thread Nano<b class='flag-5'>移植</b>

    請(qǐng)問cypd3125在 ( EZ-PD? CCGx Host SDK) 中的流程代碼如何從main.c到所有.c運(yùn)行里面有文件嗎?

    到所有 .c文件代碼流我需要知道 CYPD3125-40LQXI_notebook 很復(fù)雜才能理解 sdk 的工作流程您能否提供任何文檔或解釋 CYPD3125-40LQXI_notebook 中
    發(fā)表于 08-15 06:58

    RT-Thread Nano硬核移植指南:手把手實(shí)現(xiàn)VGLite圖形驅(qū)動(dòng)適配 | 技術(shù)集結(jié)

    VGLite是NXP提供的輕量級(jí)2D圖形API,本文將手把手帶你實(shí)現(xiàn)VGLite圖形驅(qū)動(dòng)適配RT-Thread。文章分為上、下兩篇,將手把手教您移植。上篇對(duì)RT-ThreadNano內(nèi)核與Finsh組件進(jìn)行移植,下篇?jiǎng)t教您改寫SDK中的VGLite
    的頭像 發(fā)表于 07-17 14:40 ?3611次閱讀
    RT-Thread Nano硬核<b class='flag-5'>移植</b>指南:手把手實(shí)現(xiàn)VGLite圖形驅(qū)動(dòng)適配 | 技術(shù)集結(jié)

    STM32+esp8266連接機(jī)智云,上傳溫濕度數(shù)據(jù)并控制繼電器開關(guān)(平臺(tái)配置、代碼生成、代碼移植

    本教程將詳細(xì)介紹如何將STM32微控制器與ESP8266Wi-Fi模塊連接到機(jī)智云平臺(tái),實(shí)現(xiàn)溫濕度數(shù)據(jù)的上傳與繼電器的遠(yuǎn)程控制。通過此過程,您將學(xué)會(huì)如何配置機(jī)智云平臺(tái),燒錄ESP8266固件,移植
    的頭像 發(fā)表于 07-15 18:54 ?1386次閱讀
    STM32+esp8266連接機(jī)智云,上傳溫濕度數(shù)據(jù)并控制繼電器開關(guān)(平臺(tái)配置、<b class='flag-5'>代碼</b>生成、<b class='flag-5'>代碼</b><b class='flag-5'>移植</b>)

    機(jī)智云配網(wǎng)教程第三期:?jiǎn)纹瑱C(jī)代碼移植實(shí)戰(zhàn)

    :stm32f103c8t6,WiFi模塊:ESP-01s,下載器:ST-LINK2.軟件:keil5的工程文件模板,mcu代碼代碼資源:未移植移植后(注:本文是基于stm32標(biāo)
    的頭像 發(fā)表于 07-01 17:32 ?2103次閱讀
    機(jī)智云配網(wǎng)教程第三期:?jiǎn)纹瑱C(jī)<b class='flag-5'>代碼</b><b class='flag-5'>移植</b>實(shí)戰(zhàn)

    如何在恩智浦FRDM開發(fā)平臺(tái)上實(shí)現(xiàn)代碼的高效復(fù)用

    從零開始評(píng)估微控制器可能充滿挑戰(zhàn)。即使在編寫代碼之前,開發(fā)人員也需要深入了解想要使用的外設(shè)的特性。它們是否能夠在不同產(chǎn)品間以一致方式運(yùn)行?這些所謂的可移植性究竟有多可靠?面對(duì)這些不確定性,創(chuàng)建真正可移植
    的頭像 發(fā)表于 05-27 14:35 ?1178次閱讀
    如何在恩智浦FRDM開發(fā)平臺(tái)上實(shí)現(xiàn)<b class='flag-5'>代碼</b>的高效復(fù)用

    STM32與機(jī)智云連接實(shí)現(xiàn)步驟與技巧(下篇):機(jī)智云代碼移植與優(yōu)化

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

    GC9A01-TFT屏幕驅(qū)動(dòng)(整理有stm32/51單片機(jī)/arduino等驅(qū)動(dòng)代碼

    以及收集整理好的資料,希望可以幫助用戶更加簡(jiǎn)單的學(xué)習(xí)或快速移植代碼進(jìn)行項(xiàng)目開發(fā)。本文將和大家探討一下GC9A01圓型屏幕的驅(qū)動(dòng)
    的頭像 發(fā)表于 04-25 11:29 ?1986次閱讀
    GC9A01-TFT屏幕驅(qū)動(dòng)(整理有stm32/51單片機(jī)/arduino等驅(qū)動(dòng)<b class='flag-5'>代碼</b>)