大家好,
我正在尝试开发一个引导加载程序来从F28m36中的UART更新固件。但我是初学者,找不到任何有关如何执行此操作的全面示例。
是否有解释从何处开始的示例项目或教程?
能否有人给我分步指导?
我应该编辑哪些文件? 它只是将闪存分成两个区域的.cmd文件,或者我还需要编辑startup-css.c?
谢谢
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.
大家好,
我正在尝试开发一个引导加载程序来从F28m36中的UART更新固件。但我是初学者,找不到任何有关如何执行此操作的全面示例。
是否有解释从何处开始的示例项目或教程?
能否有人给我分步指导?
我应该编辑哪些文件? 它只是将闪存分成两个区域的.cmd文件,或者我还需要编辑startup-css.c?
谢谢
您好,Sal,
当我尝试在闪存扇区L中写入时,我收到错误'FAI_Error_ABHIncorrectDataBufferLength'。
下面是我用来编写的代码。
//可以为程序功能提供最多16字节的数据缓冲区。 //每个单词都被编程,直到整个缓冲区被编程或 //发现问题。 //但是,要编程超过16个字节的缓冲区, //程序函数可以循环调用,为每个函数编程16个字节 //循环迭代,直到对整个缓冲区进行编程 //当使用AutoEccGeneration选项时,Flash API将为给定的计算ECC // 64位数据,并将其与64位主阵列数据一起编程。 //请注意,64位数据片中的任何未提供的数据 //将被假定为1,用于计算ECC,并将被编程。 对于(i=0,u32Index = Bzero_SectorL_start; (u32Index <(Bzero_SectorL_start + img->len.u32)) &&(oReturnCheck == Fapi_Status_Success);i+=16,u32Index+=16) { oReturnCheck = Fapi_issueProgrammingCommand(UINT32 *)u32Index, img ->data+I, 16岁 0, 0, FAPI_AutoEccGeneration); while (Fapi_checkFsmForReady()== Fapi_Status_FsmBusy); IF (oReturnCheck!= Fapi_Status_Success) { //查看Flash API文档以了解可能的错误 Example_Error(oReturnCheck); } //读取fmstat寄存器内容以了解FSM的状态 // program命令,查看是否存在与程序操作相关的错误 oFlashStatus = Fapi_getFsmStatus(); 如果(oFlashStatus!= 0) { //检查fmstat并进行相应的调试 fmstat_fail (); } //验证编程的值。 程序步骤本身进行验证 //。 此验证是可以执行的第二次验证。 oReturnCheck = Fapi_doVerifyByByByByByByByByByte(((uint8 *)u32Index, 16岁 img ->data+I, &oFlashStatusWord); IF (oReturnCheck!= Fapi_Status_Success) { //查看Flash API文档以了解可能的错误 Example_Error(oReturnCheck); } }
可能是与链接程序命令文件相关的内容。 我要附加bootloader和应用程序.cmd文件。
您能指导我调试这个问题吗?
你好,Katta!
感谢您的回复。
是,img大小为8624字节。
是的,我正在尝试擦除扇区L,我得到了'Fapi_Status_Success '。
随附整个项目。