TI人员:
你好!我采用MSP430F5438芯片想实现串口升级程序,是自己做的板子,板子是硬件是成熟的,现在想实现串口升级程序!我自己写了一个boot已经可以实现升级了!我先升级了一个简单的流水灯程序,大概1K不到的大小,可以正常工作灯正常闪烁,接下来我升级我真正的应用程序大概70K,程序已经下载成功也在FLASH中了,但是启动就出问题了,代码跑飞了,但是我这个程序代码是正常工作的因为这代码所有的功能都测试过了!
2. 我FLASH的划分是这样的 :
测试程序编译信息是:
真正的应用程序编译信息是:
lnk430f5438a.xcl文件内容
-cmsp430
// Compensate for hardware bug in CPU
-D?CPU30_OFFSET=2
// -----------------------------------------------
// Support for placing functions in read/write memory
//
-QCODE_I=CODE_ID
// -----------------------------------------------
// Support for thread local storage
//
-QTLS16_I=TLS16_ID
// ---------------------------------------------------------
// Placement directives
//
// -----------------------------------------------
// Information memory
//
-Z(CONST)INFO=1800-19FF
-Z(CONST)INFOA=1980-19FF
-Z(CONST)INFOB=1900-197F
-Z(CONST)INFOC=1880-18FF
-Z(CONST)INFOD=1800-187F
// -----------------------------------------------
// RAM memory
//
-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,TLS16_I=1C00-5BFF
-Z(DATA)DATA16_HEAP+_DATA16_HEAP_SIZE
-Z(DATA)CODE_I
-Z(DATA)DATA20_I,DATA20_Z,DATA20_N,DATA20_HEAP+_DATA20_HEAP_SIZE
-Z(DATA)CSTACK+_STACK_SIZE#
// -----------------------------------------------
// Read-only memory
//
// -------------------------------------
// Low memory 0-0FFFF
//
// ---------------------------
// Constant data
//
-Z(CONST)DATA16_C,DATA16_ID,TLS16_ID,DIFUNCT,CHECKSUM=6C00-FC7F
// ---------------------------
// Code
//
-Z(CODE)CSTART,ISR_CODE,CODE16=6C00-FC7F
// -------------------------------------
// All memory 0-FFFFF
//
// ---------------------------
// Code
//
-P(CODE)CODE=6C00-FC7F,10000-45BFF
-Z(CODE)CODE_ID
// ---------------------------
// Constant data
//
-Z(CONST)DATA20_C,DATA20_ID=6C00-FC7F,10000-45BFF
// -------------------------------------
// Interrupt vectors
//
-Z(CODE)INTVEC=FC80-FCFF
-Z(CODE)RESET=FCFE-FCFF


