精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

【TI FAE經驗分享】C2000上電引導模式解析

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2021-12-31 13:49 ? 次閱讀

在使用C2000的時候,經常遇到工程師芯片仿真能夠運行,但是單機跑卻不能跑起來;或者在調試時,復位芯片 》 run,發現程序不能跑起來。這其中的原因主要是沒有了解C2000的引導模式設置。另外當我們想通過其他方式去引導芯片啟動的時候,往往也需要清楚知道C2000的引導是怎么設置的。因此,在這里跟大家分享一下我對C2000引導模式的理解,希望對各位理解芯片從上電到跑到main這一段芯片運行情況有所幫助。

以C2000 Piccolo系列的引導模式為例,delfino稍微有點區別,concerto系列的引導則更復雜。但理解了Piccolo的引導原理對我們理解后面兩個系列的芯片有非常大的幫助。

1.首先我們根據圖1來看一下芯片上電后的代碼執行流程,當芯片在接收到一個復位信號后,會到0x3FFFC0去復位向量,該復位向量跳到BootROM 0x3FF75C中去執行bootloader的程序,這里主要有initboot, 和SelectBootMode, 以及一些外設引導的函數。SeleteBootMode根據芯片的硬件或軟件設置來判斷芯片該去哪里尋找程序入口,直接目的是如何找到main,然后執行應用程序。

我們最常用到的主要有兩種引導模式:

一種是boot to RAM,即跳到0x000000的RAM中,去開始執行指令,主要針對程序加載在RAM的仿真模式;另外一種是boot to Flash,則跳到0x3F7FF6中去開始執行代碼。

相應的,程序會這兩個入口地址0x000000, 0x3F7FF6放一條跳轉指令,在codestart.asm源文件中,原因是在Flash的入口地址處只有兩個單元的空間,后面是CSM模塊,所以需要跳轉;而在RAM中之所以也需要跳轉,主要是因為在跳轉到main之前,需要執行一小段代碼_c_int00,該代碼會使用0x000003之后的一段RAM,如果代碼放在那里,在執行_c_int00之后會損壞代碼。

另外就是一些外設引導模式,如SCI引導以及SPI引導等,像我們常使用的C2PROG軟件就支持SCI引導,然后通過串口下載程序。

2. 那么芯片的SelectBootMode函數是如何來判斷芯片的引導模式(boot mode)呢?

從圖2中我們可以看到,首先會判斷芯片是否連接仿真器,根據TRST引腳的狀態來判斷。

如果是仿真器連接,則進入仿真引導(Emulation Boot),這時候芯片的引導主要是靠2個RAM的單元來判斷,即EMU_BMODE和EMU_KEY,地址是0xD01和0xD00,所以我們在連接仿真器后,可以首先修改這兩個EMU_BMODE和EMU_KEY來設置引導模式;

如果沒有連接仿真器,則進入單機跑模式(stand alone), 這時候芯片的引導主要靠GPIO34和GPIO37的狀態,以及兩個OTP存儲單元的值來判斷。不過我們經常沒有使用OTP這兩個單元,用GPIO的狀態就已經夠了。

圖2. 兩種狀態下的引導模式

3. 仿真器連接時的引導模式配置

當帶仿真器的時候,芯片會根據EMU_BMODE和EMU_KEY這兩個單元的值來判斷引導模式,比如我們帶仿真器最常用的就是引導到RAM,即需要設置EMU_KEY = 0X55AA, EMU_BMODE = 0X000A。當我們在仿真的時候,程序load到Flash的時候,就需要設置EMU_KEY = 0X55AA, EMU_BMODE = 0X000B,如果EMU_BMODE = 0x0003的話,由于我們沒有對OTP單元進行操作,即OTP的值為0xFFFF,所以這種情況下也是boot to flash。

在帶仿真器跑程序的時候,我們發現即使我們不配置引導模式,程序也能夠跑到main,這主要是因為CCS的功能,在程序load到芯片的時候,或是reset 》 restart,CCS會自動屏蔽bootloader的過程,自動跳到main函數入口。如果我們只選擇reset CPU,則需要配置引導模式,即對0x0d01, 0x0d00這兩個單元在memory window進行寫相應的值,或是在script的菜單中選擇引導模式,程序才能夠跑到main中。

4. 單機跑是引導模式配置

單機跑的時候,我們最常用的是跑到Flash中,這時候則需要配置GPIO34和GPIO37的引腳為高電平,由于Piccolo系列芯片這幾個引導都有上電默認內部上拉使能,所以即使不用加上拉電阻也可以。這時候的引導模式是GetMode,由于我們沒有去配置OTP兩個單元,所以這兩個單元默認為0xFFFF,所以芯片的引導模式最終為boot to Flash。

5. 其他外設的引導模式

從上面這幾張圖中可以看到還有許多外設引導的功能,以SCI引導為例,帶仿真器和單機跑的時候,都要配置相應的存儲單元以及GPIO口狀態,使之配置為SCI boot mode。然后芯片會SCI boot 函數,準備接收串口的代碼,上位機要根據SCI boot的通信協議,生成SCI boot的數據流格式,將數據通過串口發送給芯片,芯片的bootloader會接收該代碼,接收完后會根據該數據流中的起始運行地址去開始執行從SCI下載的代碼。

審核編輯:金巧

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

    關注

    0

    文章

    341

    瀏覽量

    9957
  • OTP
    OTP
    +關注

    關注

    4

    文章

    176

    瀏覽量

    46967
  • SCI
    SCI
    +關注

    關注

    1

    文章

    55

    瀏覽量

    20058
收藏 人收藏

    評論

    相關推薦

    使用C2000?嵌入式模式生成器(EPG)進行設計

    電子發燒友網站提供《使用C2000?嵌入式模式生成器(EPG)進行設計.pdf》資料免費下載
    發表于 09-14 10:13 ?0次下載
    使用<b class='flag-5'>C2000</b>?嵌入式<b class='flag-5'>模式</b>生成器(EPG)進行設計

    C2000系統配置應用說明

    電子發燒友網站提供《C2000系統配置應用說明.pdf》資料免費下載
    發表于 09-14 10:12 ?0次下載
    <b class='flag-5'>C2000</b>系統配置應用說明

    在單個C2000?MCU使用FCL和SFRA進行雙軸電機控制

    電子發燒友網站提供《在單個C2000?MCU使用FCL和SFRA進行雙軸電機控制.pdf》資料免費下載
    發表于 09-14 09:40 ?0次下載
    在單個<b class='flag-5'>C2000</b>?MCU<b class='flag-5'>上</b>使用FCL和SFRA進行雙軸電機控制

    C2000?MCU的運行時堆棧大小監測

    電子發燒友網站提供《C2000?MCU的運行時堆棧大小監測.pdf》資料免費下載
    發表于 09-11 09:30 ?0次下載
    <b class='flag-5'>C2000</b>?MCU的運行時堆棧大小監測

    在第三代C2000器件實現EEPROM的模擬操作

    電子發燒友網站提供《在第三代C2000器件實現EEPROM的模擬操作.pdf》資料免費下載
    發表于 09-09 10:59 ?0次下載
    在第三代<b class='flag-5'>C2000</b>器件<b class='flag-5'>上</b>實現EEPROM的模擬操作

    C2000 MCU JTAG 連接調試

    電子發燒友網站提供《C2000 MCU JTAG 連接調試.pdf》資料免費下載
    發表于 09-09 09:30 ?0次下載
    <b class='flag-5'>C2000</b> MCU JTAG 連接調試

    C2000 MCU的ADC輸入電路評估(使用TINA-TI仿真工具)

    電子發燒友網站提供《C2000 MCU的ADC輸入電路評估(使用TINA-TI仿真工具).pdf》資料免費下載
    發表于 09-07 11:18 ?1次下載
    <b class='flag-5'>C2000</b> MCU的ADC輸入電路評估(使用TINA-<b class='flag-5'>TI</b>仿真工具)

    C2000 AD的電荷共享驅動電路(使用PSPICE-FOR-TI仿真工具)

    電子發燒友網站提供《C2000 AD的電荷共享驅動電路(使用PSPICE-FOR-TI仿真工具).pdf》資料免費下載
    發表于 09-06 09:59 ?0次下載
    <b class='flag-5'>C2000</b> AD的電荷共享驅動電路(使用PSPICE-FOR-<b class='flag-5'>TI</b>仿真工具)

    C2000 ADC的電荷共享驅動電路(使用TINA-TI仿真工具)

    電子發燒友網站提供《C2000 ADC的電荷共享驅動電路(使用TINA-TI仿真工具).pdf》資料免費下載
    發表于 09-06 09:40 ?1次下載
    <b class='flag-5'>C2000</b> ADC的電荷共享驅動電路(使用TINA-<b class='flag-5'>TI</b>仿真工具)

    C2000?硬件內置自檢

    電子發燒友網站提供《C2000?硬件內置自檢.pdf》資料免費下載
    發表于 09-03 11:33 ?0次下載
    <b class='flag-5'>C2000</b>?硬件內置自檢

    C2000?器件中的CRC引擎

    電子發燒友網站提供《C2000?器件中的CRC引擎.pdf》資料免費下載
    發表于 08-30 10:38 ?0次下載
    <b class='flag-5'>C2000</b>?器件中的CRC引擎

    快速實現C2000串口程序升級

    電子發燒友網站提供《快速實現C2000串口程序升級.pdf》資料免費下載
    發表于 08-29 10:50 ?0次下載
    快速實現<b class='flag-5'>C2000</b>串口程序升級

    C2000 DCSM ROM代碼片段/ROP漏洞

    電子發燒友網站提供《C2000 DCSM ROM代碼片段/ROP漏洞.pdf》資料免費下載
    發表于 08-28 09:39 ?0次下載
    <b class='flag-5'>C2000</b> DCSM ROM代碼片段/ROP漏洞

    使用C2000 I2C模塊連接EEPROM

    電子發燒友網站提供《使用C2000 I2C模塊連接EEPROM.pdf》資料免費下載
    發表于 08-27 09:53 ?0次下載
    使用<b class='flag-5'>C2000</b> I2<b class='flag-5'>C</b>模塊連接EEPROM

    TIDM-02000-使用 C2000? 實時 MCU 的峰值電流模式控制相移全橋 PCB layout 設計

    電子發燒友網站提供《TIDM-02000-使用 C2000? 實時 MCU 的峰值電流模式控制相移全橋 PCB layout 設計.pdf》資料免費下載
    發表于 05-19 14:44 ?0次下載
    TIDM-02000-使用 <b class='flag-5'>C2000</b>? 實時 MCU 的峰值電流<b class='flag-5'>模式</b>控制相移全橋 PCB layout 設計