91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

F28004x在線調(diào)試復(fù)位后程序無法運(yùn)行怎么辦

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

掃碼添加小助手

加入工程師交流群

作者:TI 工程師 Aki Li, Ricky Zhang

問題描述:F28004x在線調(diào)試,如果利用CCS進(jìn)行reset復(fù)位后,點(diǎn)擊run/resume程序?qū)⑼A粼?x3FB02A 而無法繼續(xù)運(yùn)行, 而需先點(diǎn)擊restart,程序方可正常運(yùn)行。原因在于F28004x在仿真狀態(tài)下的引導(dǎo)模式(Emulation Boot)尚未配置,因而無法順利完成引導(dǎo)過程,而CCS的restart功能可以屏蔽芯片的引導(dǎo)過程,使得程序自動(dòng)跳到main()函數(shù)入口。具體分析此問題之前,有必要了解下芯片在復(fù)位后的引導(dǎo)過程。下面以F28004x為例介紹C2000芯片的引導(dǎo)過程,老版本的芯片可參考《TMS320x2803x Piccolo Boot ROM reference guide》,基本過程還是一致的。

當(dāng)芯片重上電或者收到復(fù)位信號(hào)時(shí),芯片都需要執(zhí)行引導(dǎo)程序,選擇程序入口地址或者通過外設(shè)加載程序(bootloader),后續(xù)才會(huì)運(yùn)行應(yīng)用程序。復(fù)位后,芯片會(huì)從地址0x3FFFC0處運(yùn)行復(fù)位向量,從而跳轉(zhuǎn)至Boot ROM里開始執(zhí)行InitBoot功能。芯片會(huì)判斷當(dāng)前是否連接仿真器,進(jìn)入不同的引導(dǎo)流程,如圖1和圖2分別給出了芯片在脫機(jī)模式和仿真調(diào)試模式的引導(dǎo)過程。

(1) 若芯片沒有連接仿真器,系統(tǒng)進(jìn)入脫機(jī)模式的引導(dǎo)過程。F28004x在出廠時(shí)默認(rèn)通過引導(dǎo)模式選擇引腳(Boot Mode Select Pin, BMPS) GPIO24和GPIO32的電平狀態(tài)組合選擇不同的引導(dǎo)模式,如表1所示。但與F2803x等老版本芯片不同,F(xiàn)28004x也可以支持用戶自定義BMPS和引導(dǎo)模式,分別通過改寫DCSM OTP中的 Z1-OTP-BOOTPIN-CONFIG和Z1-OTP-BOOTDEF對(duì)應(yīng)的值實(shí)現(xiàn)自定義引導(dǎo)功能,支持最多3個(gè)BMPS引腳和8種引導(dǎo)模式。

具體過程:若Z1-OTP-BOOTPIN-CONFIG.Key=0x5A,則進(jìn)入自定義引導(dǎo)模式,

芯片根據(jù)Z1-OTP-BOOTPIN-CONFIG.BMPSx設(shè)定的BMPS引腳及其電平狀態(tài),判斷要執(zhí)行的引導(dǎo)模式(對(duì)應(yīng)的引導(dǎo)模式通過Z1-OTP-BOOTDEF.BOOTDEFx進(jìn)行設(shè)置)。否則,芯片將根據(jù)GPIO24和GPIO32的電平狀態(tài)選擇默認(rèn)的引導(dǎo)模式。

(2) 若芯片沒有連接仿真器,則進(jìn)入仿真調(diào)試的引導(dǎo)模式,通過讀取EMU-BOOTPIN-CONFIG和EMU_BOOTDEF的值,從而執(zhí)行特定的引導(dǎo)模式。值得注意的是,上述的自定義模式配置在OTP中的修改是一次性的,無法再次擦寫。因此,系統(tǒng)提供了EMU-BOOTPIN-CONFIG和EMU_BOOTDEF用于仿真模擬自定義的引導(dǎo)過程,用于真正修改DCSM OTP之前的參考。

具體過程:若EMU-BOOTPIN-CONFIG.Key=0x5A,則選擇自定義模式進(jìn)行引導(dǎo)過程,芯片根據(jù)EMU-BOOTPIN-CONFIG.BMPSx設(shè)定的BMPS引腳及其電平狀態(tài),判斷要執(zhí)行的引導(dǎo)模式。值得注意的是,若EMU-BOOTPIN-CONFIG.Key=0xA5,則意味著芯片可在仿真器連接的情況下,進(jìn)入脫機(jī)運(yùn)行模式下對(duì)應(yīng)的引導(dǎo)過程,即根據(jù)Z1-OTP-BOOTPIN-CONFIG和Z1-OTP-BOOTDEF對(duì)應(yīng)的值進(jìn)行引導(dǎo);該模式與F2803x在連接仿真器時(shí)將EMU_BMODE配置成GetMode()原理一致。而如果EMU-BOOTPIN-CONFIG.Key的值沒有正確配置,芯片將進(jìn)入Wait Boot 模式,會(huì)處于循環(huán)等待狀態(tài)而無法完成引導(dǎo)過程。

若芯片順利完成引導(dǎo)模式,芯片會(huì)通過外設(shè)進(jìn)行加載程序,或者直接跳轉(zhuǎn)至引導(dǎo)模式對(duì)應(yīng)的程序入口地址開始運(yùn)行應(yīng)用程序,即main()。比如,如果是boot to Flash,則跳轉(zhuǎn)至地址0x80000(此時(shí)需在CMD文件中配置“codestart” section鏈接至對(duì)應(yīng)的Flash 空間地址)。

基于以上關(guān)于F28004x芯片引導(dǎo)流程的介紹,再回頭分析下芯片在連接仿真器進(jìn)行調(diào)試時(shí)的復(fù)位問題。以C2000ware提供的LED程序?yàn)槔?C:\ti\c2000\C2000Ware_DigitalPower_SDK_1_02_00_00\c2000ware\device_support\f28004x\examples\led ),燒寫程序。根據(jù)表 2給出的Boot ROM 寄存器地址,可通過在Memory Browser 窗口查看EMU_BOOTPIN_CONFIG.Key值(高8位),結(jié)果如圖 3所示,即由于EMU-BOOTPIN-CONFIG.Key = 0xEE, 因此芯片將進(jìn)入Wait Boot 模式,如果進(jìn)行reset后直接運(yùn)行,通過反匯編Disassembly 窗口可知程序停在了0x3FB02A,處于ESTOP0循環(huán)等待狀態(tài),正是在Wait Boot 的運(yùn)行地址范圍內(nèi)(0x3FAD74 – 0x3FB0CD),如圖 4所示。

因此,如果要實(shí)現(xiàn)復(fù)位后點(diǎn)resume直接運(yùn)行,解決方法就是要正確配置仿真狀態(tài)下的引導(dǎo)模式。以boot to flash 為例(F28004x TRM手冊(cè)中的4.3.3.1), 有以下兩種思路:

1) 在EMU_BOOTPIN_CONFIG地址寫入0x5AFFFFFF,同時(shí)在EMU_BOOTDEF_LOW地址對(duì)應(yīng)的低8位寫入0x03(BOOTDEF.BOOTDEF0=0x03)

2) 如果芯片在單機(jī)時(shí)可正常運(yùn)行,例如GPIO24和GPIO32電平都為高(默認(rèn)進(jìn)入boot to flash),則在EMU_BOOTPIN_CONFIG地址0xD00寫入0xA5FFFFFF即可。

最后,對(duì)比下老版本的F28035芯片的引導(dǎo)過程。如圖 5所示,可知該芯片已默認(rèn)配置成GET_BOOT模式(EMU_BMODE= 0x0003),進(jìn)一步去判斷OTP_KEY的值,該值不等于0x55AA,因此引導(dǎo)模式為boot to flash,經(jīng)驗(yàn)證,芯片可順利完成引導(dǎo)程序,從而執(zhí)行應(yīng)用程序。


審核編輯:何安

聲明:本文內(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

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    智能顯示模塊連接電腦后無法識(shí)別怎么辦?連接電腦后讀不到模塊U盤?

    智能顯示模塊連接電腦后無法識(shí)別怎么辦?連接電腦后讀不到模塊的U盤是什么原因?
    發(fā)表于 01-20 15:57

    智能顯示模塊上電顯示“No Project”怎么辦?

    智能顯示模塊上電顯示“No Project”怎么辦?
    發(fā)表于 01-20 15:20

    儲(chǔ)能EMS控制器(5) — 儲(chǔ)能柜調(diào)試又慢又不穩(wěn)定怎么辦

    響應(yīng)差,怎么辦?簡(jiǎn)介目前儲(chǔ)能行業(yè)儲(chǔ)能EMS控制器硬件、終端業(yè)務(wù)軟件、云平臺(tái)及Web&APP應(yīng)用大多由不同廠商提供,各廠商的產(chǎn)品質(zhì)量參差不齊、缺乏穩(wěn)定性,控制架構(gòu)分層獨(dú)立,這
    的頭像 發(fā)表于 12-09 11:39 ?506次閱讀
    儲(chǔ)能EMS控制器(5) — 儲(chǔ)能柜<b class='flag-5'>調(diào)試</b>又慢又不穩(wěn)定<b class='flag-5'>怎么辦</b>?

    CPU的幾種復(fù)位方式適合哪些場(chǎng)景?

    1、上電復(fù)位 適用場(chǎng)景:系統(tǒng)首次上電或電源以外斷電重新上電時(shí); 2、看門狗復(fù)位 適用場(chǎng)景:虛脫程序運(yùn)行異常,如陷入死循環(huán)或長(zhǎng)時(shí)間無響應(yīng)時(shí)
    發(fā)表于 11-27 07:56

    CW32L010F8P6開發(fā)板的復(fù)位鍵不起作用怎么解決?

    拿到手的CW32L010F8P6開發(fā)板,在測(cè)試過程中發(fā)現(xiàn),復(fù)位按鍵好像是沒起作用。不知道是沒連接到對(duì)應(yīng)的引腳上,還是線路斷開了。原來的板載程序運(yùn)行中,按
    發(fā)表于 11-26 07:19

    解決程序無法下載問題

    一、隊(duì)伍介紹 本篇為蜂鳥E203系列分享第二篇,本篇介紹的內(nèi)容是解決程序無法下載問題。 二、問題提出 下載完NICE_demo,運(yùn)行程序,無法
    發(fā)表于 10-30 07:35

    下載程序2個(gè)串口都會(huì)打印RT-LOGO,為什么?

    遇到個(gè)奇怪的問題 stm32f405板子有兩個(gè)串口,串口3和串口5, 串口5用于調(diào)試,串口3用于和電腦通信。 用MDK下載程序,設(shè)置成下載復(fù)位
    發(fā)表于 09-28 15:16

    按下復(fù)位鍵RTT程序死機(jī)正常嗎?

    裸機(jī)程序都是按下復(fù)位鍵從頭運(yùn)行的,RTT按下復(fù)位鍵不運(yùn)行屬于正常嗎? 今天使用野火的板子調(diào)試程序
    發(fā)表于 09-24 06:38

    如何解決開發(fā)機(jī)器學(xué)習(xí)程序時(shí)Keil項(xiàng)目只能在調(diào)試模式下運(yùn)行,但無法正常執(zhí)行的問題?

    如何解決開發(fā)機(jī)器學(xué)習(xí)程序時(shí)Keil項(xiàng)目只能在調(diào)試模式下運(yùn)行,但無法正常執(zhí)行的問題
    發(fā)表于 08-28 07:28

    tc275調(diào)試引導(dǎo)程序無法寫入是怎么回事?

    tc275調(diào)試引導(dǎo)程序,一步一步操作,可以寫入閃存,結(jié)果是可以的,但是運(yùn)行應(yīng)用程序,擦除可以,但無法
    發(fā)表于 07-28 07:39

    重新配置SCB-&gt;VTOR = 0x08010000,再次復(fù)位,程序異常的原因?

    (); MX_CRC_Init(); EEPROMInit(0); } 做如上配置,每次燒錄的第一次運(yùn)行都是正常的,在cubeide中點(diǎn)擊復(fù)位
    發(fā)表于 07-22 06:56

    STM32H745XIH6不能進(jìn)行雙核調(diào)試,CM4不能進(jìn)行在線調(diào)試怎么解決?

    CM4 debug設(shè)置;CM4 debug設(shè)置完成,CM7 debug的調(diào)試器,會(huì)自動(dòng)調(diào)整 ULINK2/ ME cortex Debugger,設(shè)置失敗。CM4下載程序成功,但是不能進(jìn)行
    發(fā)表于 06-09 06:58

    為什么無法運(yùn)行程序“make”(在目錄“C:\\?

    FX2LP Build,得到了 14:26:46 **** 為項(xiàng)目 Fx2Test 構(gòu)建配置調(diào)試 **** 全部制作 無法運(yùn)行程序“make”(在目錄“C
    發(fā)表于 05-15 08:26

    FPGA的Jtag接口燒了,怎么辦?

    在展開今天的文章前,先來討論一個(gè)問題:FPGA的jtag接口燒了怎么辦?JTAG接口的輸入引腳通常設(shè)計(jì)為高阻抗,這使得它們對(duì)靜電電荷積累非常敏感,由于JTAG接口需要頻繁連接調(diào)試器、下載線纜等外
    的頭像 發(fā)表于 04-27 11:01 ?2690次閱讀
    FPGA的Jtag接口燒了,<b class='flag-5'>怎么辦</b>?

    雅特力AT32F402/F405入門使用指南

    搭建AT32開發(fā)環(huán)境一、調(diào)試工具及開發(fā)板目前AT32F402/AT32F405開發(fā)板都自帶AT-Link-EZ調(diào)試工具,AT-Link-EZ如下圖左邊紅框所示,它也可拆開
    的頭像 發(fā)表于 03-28 18:59 ?3060次閱讀
    雅特力AT32<b class='flag-5'>F</b>402/<b class='flag-5'>F</b>405入門使用指南