给Apollo3 Plus开发将数据加载到SPI Flash上出问题了
折腾好几天了,最终还是没有成功完成Apollo3 Plus开发板将用In-Direct的方法将数据加载到SPI Flash上。
准备暂时搁置一下,下一步调查用Uart->MCU->SPI FLash是否可行。
将这几天遇见的问题整理一下:
1.Segger推荐的Open Flash的In-direct方法的开发环境是用Segger Embeded Studio进行开发。
- 按照官网步骤进行开发,前期一切顺利,但是进入Erase Sector操作的时候,系统会莫名其妙出现Bus Error。这些代码我在Keil环境下调试都是成果的,在Segger Embeded Studio就会出问题,Debug也找不到问题所在。会突然进行非法的地址访问。
2.用Keil进行开发
- 我的代码之前一直是用Keil开发的,在Keil中Debug没有问题。
- 但是作为JFlash的External Dll加载的时候,JFlash总是报告找不到FLashDevice这个Struct. FLashDevice是放在Section DevSrc下,通过Mapping文件确认没有问题。
- 安装Segger为Embeded Studio的Placement.xml(内存管理设置)的方法,我修改Keil的Memory 管理设置,两个开发环境的Memory 管理的设置不同,调整国过几次,包括将DevSrc放到最后等,还是报告找不到Struct FLashDevice.
目前只有先搁置了,后面两天看看UART可不可以。
晚上不甘心,又试了一下将Keil的.o混到Segger Studio编译了看是否能成功,发现这两套编译环境混起来基本上各种问题层出不穷。也只能放弃了。不过知道为什么之前Segger Studio的环境下会出问题了,主要是一些中断相关的代码是汇编的,代码会根据编译器选择不同的汇编代码。最后乱套了。
标签:
嵌入式设备开发
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)