TI中文支持网
TI专业的中文技术问题搜集分享网站

28004x/280049C/280041 使用flash啟動程序

請教板上各位大神:

使用的芯片為: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);可以解决该问题,可以参考我之前给你的帖子链接进行操作。

赞(0)
未经允许不得转载:TI中文支持网 » 28004x/280049C/280041 使用flash啟動程序
分享到: 更多 (0)