請教板上各位大神:
使用的芯片為:280041
想要使用flash啟動中斷程序,而不是只能在debug模式下才能啟動。
請問該如何使用呢?或是有參考範例?
謝謝
Green Deng:
你好,请问你说的“而不是只能在debug模式下才能啟動。”是指启动程序还是启动中断?不是很理解你的问题。
TI有提供一个在flash中运行的ADC例程,位置在:C:\ti\c2000\C2000Ware_3_01_00_00\device_support\f28004x\examples\adc
程序是用ePWM1触发ADCA1通道进行采样,编译的时候点击如下图中的flash编译选项切换到flash模式之后再进行debug,程序就可以在flash中运行了。
user4310360:
回复 Green Deng:
我的意思是沒有連接到電腦(debug模式)時,仍然可以啟動已經編寫好的中斷程序。
具體該如何實現呢?
Green Deng:
回复 user4310360:
一般程序运行分为ram运行(连接仿真器调试的模式)和flash运行(脱离仿真器单机运行的模式)。上面这个例程就是可以flash运行的中断程序。通过ePWM模块触发ADC中断
user4310360:
回复 Green Deng:
請問自行建立的CCS專案,該如何編寫為flash運行呢?
能否提供相關文件呢?
謝謝!
Green Deng:
回复 user4310360:
如果你会建立ram运行的工程的话,通过更改cmd文件的方式可以直接转为flash运行的工程。
主要是①将工程中的ram.cmd文件替换为flash.cmd文件,即下图中的两个文件:
②在include options中添加cmd文件的路径,如下图位置:
完成上述两步,一般都可以把简单的工程由ram转为flash运行,较复杂的工程会涉及memcpy等问题,可以参考这个帖子的“关于程序从flash搬运到RAM运行”部分内容:
https://e2echina.ti.com/question_answer/microcontrollers/c2000/f/56/t/185635
user4310360:
回复 Green Deng:
若改為flash_lnk.cmd則會無法運行,在電腦上或是單機
Green Deng:
回复 user4310360:
一般不会啊,你的是什么工程?是用的例程测试的吗?无法运行的话系统会有什么提示?
user4310360:
回复 Green Deng:
我是使用自行建立的專案,等等我截圖給你看看
user4310360:
回复 user4310360:
1.編輯沒有問題
2.include應該也有導入
3.debug通過
4.按下啟動後則顯示此。單機時也無法運行
Green Deng:
回复 user4310360:
你的程序从未在flash中运行过吗?如果是的话应该是需要加入memcpy函数。
该问题应该是由于往FLASH烧录程序时,由于时钟初始化需要运行延时函数,而该函数在CMD文件中是要搬至RAM运行,你的程序里缺少这个步骤,所以程序每次运行至延时函数时就会跑飞报错。
目前通过 MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);可以解决该问题,可以参考我之前给你的帖子链接进行操作。
TI中文支持网










