我用TMS32LF2407做了一个非常小的系统。全部工作就是用XF管脚控制一个LED的闪烁。我把程序烧进FLASH后,用防真器带着跑(MP/MC#=0),程序正常运行。但是我把防真器去掉,重新上电后,程序不能正常运行。我分析,程序没有执行。我很想知道,为什么程序不能执行呢?晶震和复位信号都很正常。或者还有其他原因,请高手不吝赐教。谢谢!
仿真时程序是在ram中执行的就是用ps选通的那个ram,调电以后程序自然就不存在了,要烧到flash才可以脱离仿真器使用
程序烧到FLASH里了,但是上电后没运行
程序烧到FLASH里了,但是上电后没运行。我是把程序烧写到FLASH后,用防真器带着跑的。
用的是FLASH烧写插件
用的是FLASH烧写插件烧写程序,而不是用PROGRAM LODD
你作实验选的管脚不对,你在看看这个管脚的定义,不能随便乱用的,你可以使用其他I/O作实验
BOOT_EN/XF 是这么描述的
Boot ROM enable, GPO, XF. This pin will be sampled as input (BOOT_EN) to
update SCSR2.3 (BOOT_EN bit) during reset and then driven as an output
signal for XF. After reset, XF is driven high. The BOOT_EN pin must be driven
with a passive circuit only. (↑)
就是说这个管脚在复位的时候是做为输入的,而且必须为高电平。
所以我又做了如下试验,把XF悬空(因为它内部上拉电阻),不成。然后我又外部上拉一个10K电阻也不成。我觉得应该不是XF的问题。是不是我的CMD文件有问题呢?请高手帮我看看。谢谢。
MEMORY
{
PAGE 0:
VECS : o=0h,l=40h
FLASH: o=100h,l=7EFFh
PAGE 1:
SW : o=300h, l=0FFh
IRAM : o=800h,l=7ffh
}
SECTIONS
{
.vectors: {}> VECS PAGE 0
.text : {}> FLASH PAGE 0
.cinit : {}> FLASH PAGE 0
.const : {}> IRAM PAGE 1
.data : {}> IRAM PAGE 1
.bss : {}> IRAM PAGE 1
.stack : {}> IRAM PAGE 1
}