在BootROM Reference中,设置F28035的启动模式是通过
EMU_KEY EMU_BMODE两个寄存器,
如果连接仿真器,从仿真器设置这个两个寄存器,那通过仿真器怎么设置啊?
如果要在FLASH启动,也是设置这两个寄存器,并检测GPIO34 GPIO37两个引脚,设置两个GPIO好办,在FLASH启动模式下,怎么设置EMU_KEY EMU_BMODE这两个寄存器呢?
求TI的高手指教!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
EMU_KEY和EMU_BMODE 对应的地址是0xD00 0xD01 直接在CCS的调试界面里直接改着两个地址的值。
如果连接上仿真器,则可以CCS调试环境中直接对地址EMU_KEY 和EMU_BMODE 写值。
如果是芯片自己运行FLASH程序,芯片首先会检测GPIO34 GPIO37两个引脚,其次检测OTP_KEY 和OTP_BMODE (注意不是EMU_KEY 和EMU_BMODE ),这个需要你烧写到芯片的程序去设置OTP_KEY 和OTP_BMODE 的值
谢谢楼主解答,但是对楼主的回答还有看不明白的地方:
1、“芯片自己从FLASH运行”,那么程序部是已经从FLASH运行了么? 还要设置?
2、GPIO34/ GPIO37 跟OTP_KEY/OTP_BMODE:
2.1 芯片首先检测 GPIO34 /GPIO37 此时就决定启动模式了么? 那么为什么还需要检测OTP_KEY/OTP_BMODE?
2.2 GPIO34/ GPIO37 跟OTP_KEY/OTP_BMODE是个什么关系,设置启动模式,它们两队寄存器之间有优先级么?
Lzh,
28035的引导方式分成两种模式:
1,带仿真器运行
这时候靠EMU_KEY, EMU_MODE寄存器来配。芯片在带仿真器的时候可以烧写在Flash中,也可以烧写到RAM中,都是通过修改这两个寄存器来判断引导。但是CCS在load完程序后会自动屏蔽boot mode这个过程,直接跳到main函数入口。如果你通过点击reset CPU,不点击restart,然后按run,这时boot mode就需要判断,所以要在CCS的memory window设置这两个寄存器,或是在script菜单中可以设置boot to flash还是boot to ram.
2,不带仿真器运行,即standalone
主要判断GPIO34、37。 我们使用最多情况是单机跑时boot to flash,这时候只要保证GPIO34,37在上电后为高电平就好,因为piccolo系列这些引脚默认上拉,所以悬空也可以。
至于OTP_KEY和OTP_BMODE两个OTP上的单元,主要是用在当这两种运行模式下,引导模式配置为GET MODE时,需要这两个单元进一步配置。
另外如果要编写OTP key,则可以在源文件中对该地址赋值,在烧写时就可以烧写进入。
去芯片主页下面下载BOOT ROM用户手册查看详细资料。
Eric