主题中讨论的其他器件:C2000WARE
工具/软件:Code Composer Studio
您好!
在尝试在 RAM 中找到 TI 闪存 API (从闪存复制到 RAM)时遇到问题。 这是我的链接器文件:
存储器
{
第0页: /*引导加载程序闪存代码*/
开始 :origin = 0x080000、length = 0x000002
BOOT_VERSION :origin = 0x080002,length = 0x000002
引导加载程序 :origin = 0x080004,length = 0x001FFC
第1页: /*数据空间*/
数据 RAM :origin = 0x008000、length = 0x001000
CODERAM :origin = 0x009000,length = 0x001000
第2页: /* CRC 保护的数据空间*/
RAMM0 :origin = 0x0000F5,length = 0x00030B
RAMM1 :origin = 0x000400、length = 0x000400 //片上 RAM 块 M1 *
第3页: /*受保护的 RAM 数据空间*/
RAMGS0 :origin = 0x00C000、length = 0x002000
RAMGS1 :origin = 0x00E000、length = 0x002000
RAMGS2 :origin = 0x010000、length = 0x002000
RAMGS3 :origin = 0x012000,length = 0x002000
第4页:
复位 :origin = 0x3FFFC0,length = 0x000002
}
部分
{
codestart :load=begin、page = 0、align (2)
BootVersion :load=boot_version,page = 0,align (2)
.text :load=bootloader, page = 0,align(4)
.cinit :>引导加载程序, 页= 0,align(4)
.pinit :>引导加载程序, 页= 0,align(4)
切换 :>引导加载程序, 页= 0,align(4)
.econst :{*(.econst)} load= bootloader, page = 0,align (4)
第 {
.TI.ramfunc
/*{-l F021_API_F28004x_FPU32.lib}*
}
load = bootloader、page = 0、
运行= CODERAM、页= 1、
load_start (_RamfuncsLoadStart)、
load_size (_RamfuncsLoadSize)、
load_end (_RamfuncsLoadEnd)、
run_start (_RamfuncsRunStart)、
run_size (_RamfuncsRunSize)、
run_end (_RamfuncsRunEnd)
.cio :> DataRAM, page = 1.
ebss :{*(.ebss)}> DataRAM、 page = 1
.esysmem :> DataRAM, page = 1.
堆栈 :> RAMM1, PAGE = 2
复位 :>重置, 页= 4,类型= DSECT /*未使用,*/
RAMS0 :>RAMGS0, PAGE = 3
ramgs1 :>RAMGS1, page = 3.
}
如果 对 GROUP 中的第{-l F021_API_F28004x_FPU32.lib}行进行了注释、则应用程序会在调试会话中链接并运行正常、并且是独立的。
如果 未对 GROUP 中的第{-l F021_API_F28004x_FPU32.lib}行进行注释、则应用程序链接也正常、但仅在调试时运行(在该操作中、我验证了函数已良好地复制到 RAM、并且应用程序从第一个代码开始开始运行良好)。 独立运行时、它会挂起。 我不太擅长在运行应用程序时进行调试、也许您可以帮我解决问题。 我试图遵循其他职位程序、但没有取得很大成功。
我使用 TI controlCARD 开发板来测试应用。
有什么想法吗? 在此、我们向您表示感谢。