工具/软件:Code Composer Studio
您好!
我正在尝试将 UART 引导加载程序项目集成到我的设计中。 我成功接收到第一个数据包(通过 YMODEM)、但无法通过 F021闪存 API 初始化闪存。 我可以单步执行代码、当它调用 Fapi_setActiveFlashBank()时它会失败、并在未定义指令中断(0x0004)处结束。
不过、我认为这有点令人发指的是、因为在其他帖子中进行读操作听起来好像我的闪存 API 可能不会复制到 RAM 中并从中执行。 人们建议在.cmd 文件中使用 ramfuncs 定义、但我完全不知道如何执行此操作、我还觉得 UART 引导加载程序项目可能已经设置了此设置?
有人能否提供一些有关如何将 F021闪存 API .lib 链接到工程中的见解? 我很确定这就是我的问题所在。
这是我的.cmd 文件:
// // // bl_link.cmd:链接器命令文件 //作者 :王杰。 qjwang@ti.com //日期 :2012年9月19日 // 版权所有(c) 2006-2011 Texas Instruments Incorporated。 保留所有权利。 //软件许可协议 // //德州仪器(TI)提供此软件仅供 和//仅供 TI 的微控制器产品使用。 软件归 // TI 和/或其供应商所有,并受适用的版权 //法律保护。 您不能将此软件与"病毒"开源 //软件组合在一起以形成更大的程序。 // //此软件按“原样”提供,且存在所有故障。 //对于 本软件,不作任何明示、暗示或法定的保证,包括但不限于对适销性和适用性的暗示保证//特定用途。 在任何 //情况下、TI 不对任何 原因造成的特殊、意外或必然//损害负责。 //// ***************** --retain="*(.intvecs)" 内存 { 向量(X):origin=0x00000000 length=0x00000200 BOOT_LOAD (RX):origin=0x00000200 length=0x00001000 Flash_API (RX):origin=0x00001200 length=0x00001000 FLASH0 (Rx):origin=0x00002200 length=0x00018000 FLASH1 (Rx):origin=0x00020000 length=0x00060000 FLASH2 (Rx):origin=0x00080000 length=0x00080000 FLASH3 (Rx):origin=0x00100000 length=0x00080000 FLASH4. (Rx):origin=0x00180000 length=0x00080000 SRAM (RW):origin=0x08002000 length=0x0002D000 堆栈 (RW):origin=0x08000000 length=0x00001FF0 // RSV (RW):origin=0x08000000 length=0x00000010 fill=0 } SECTIONS { .intvecs :{}> vectors //boot_code :{..\Release\sys_core.obj (.text)}> boot_load ///eabi_start :{..\Release\sys_startup.obj (.text)}> boot_load_obj (.text ):{.boot_load.obj (.obj .text //..\Release\BL_FLASH.obj (.text) //..\Releases\Fapi_UserDefinedFunctions.obj (.text) bl_flash.obj (.text) fapi_UserDefinedFunctions.obj (.text) //--library= F021_API_CortexR4_LE.lib <FlashStateMachine.obj --library=.\lib\f021_API_CortexR4_LE.lib (.text) }load = flash_API、run = SRAM、load_start (api_load)、run_start (api_run)、size (api_size) .text > FLASH0 .const > FLASH0 .cinit > FLASH0 .pinit > FLASH0 .data > SRAM .bss > SRAM }
感谢您提供的任何帮助。
-Brian