在基于Flash的bootloader 实现串口升级用户程序这个问题上卡了很久了,请各位坛友多多帮助。
本意是想实现TM4C1232D5PM的串口升级,摆脱JTAG口的限制。
现在面临的问题是,虽然可以用LM Flash Programmer通过串口下载程序,但是下载的用户程序始终不运行。下载的步骤详述如下:
1) 通过JTAG口下载官方例程boot_serial的.bin文件到目标板,LM设置的应用偏移地址为0;
2) 通过JTAG口下载官方例程boot_demo1的.bin文件到目标板,LM设置的应用偏移地址为0x2800;
( 此处应与boot_serial中的bl_config.h的定义 #define APP_START_ADDRESS 0x2800 一致;
boot_demo1或者boot_demo2中也同样定义 #define APP_BASE 0x00002800);
3) 此后一直可以用串口下载boot_demo1或者boot_demo2的.bin文件。
然后,我尝试通过串口下载自己编写的应用程序,同样可以顺利下载,而且可以无限次重复下载,但是程序不运行。在自己编写的程序中同样定义了
#define APP_BASE 0x00002800
为什么我自己写的程序不运行??求教。
此帖出自
小平头技术问答
我是在CCS下进行,编译参数没有问题。
请问版主要怎么设置?真心求教,请您别烦躁,我知道这种问题有点傻逼。map文件是哪个文件,在CCS下?
您说的map文件是指工程里的cmd文件吗?这里面有这样的代码:
/* The starting address of the application. Normally the interrupt vectors */
/* must be located at the beginning of the application. */
#define APP_BASE 0x00002800
#define RAM_BASE 0x20000000
/* System memory map */
MEMORY
{
/* Application stored in and executes from internal flash */
FLASH (RX) : origin = APP_BASE, length = 0x0000FFFF - APP_BASE
/* Application uses internal RAM for data */
SRAM (RWX) : origin = RAM_BASE, length = 0x20005FFF - RAM_BASE
}
一周热门 更多>