由于项目需要大量的图片字库还有音频文件,所以外挂了NOR flash和NAND flash,需要用到烧写算法STLDR(就是包含几段在SRAM里面运行的代码),调试的时候遇到了几个问题,都是大意造成的,所以写出来记录一下
首先烧写用到PC端软件是STM32 STLINK Utility,在安装目录下附带了一些常用的flash的烧写算法,但没有我用到的那种,所以只能参考ST-LINK Utility UM手册在…ST-LINK UtilityExternalLoader目录下的工程模板上修改,修改需要用到对FLASH的初始化、读写、擦除函数,这个要提前调试好,填到对应的函数内就可以了,后面由上位机自己调用
问题来了,主要是三方面的问题,第一个是编译出错,第二个是延时,第三个是地址
1)编译出错:在修改完模板第一次编译的时候可能会报错.xxx.axf: Error: L6265E: Non-PI Section loader_src.o(.data) cannot be assigned to PI Exec region PrgData.,这个问题需要修改target.sct文件,添加ABSOLUTE,这个是偶然在一个论坛上看到的,在此表示感谢
2)延时问题:工程用的cubemx的HAL库开发,所有延时部分都是用的HAL_Delay()函数,但是在模板中并没有使用中断,一直卡死在延时函数里面出不来,所以最终改为常用的自减法来达到延时的目的
3)地址问题:flash接在OSPI2接口上,起始基地址是0x70000000,但是OSPI的库函数使用的地址是不包括基地址的,而在模板中读写函数传入的地址参数是带着基地址的,所以需要与0x0FFFFFFF相与再使用
这三个问题解决好就可以正常读写了,就是感觉速度不快,带校验也就50k/s,可能是HAL库函数注重稳定性和兼容性,代码冗余多,直接操作寄存器可能会快点
上一篇:STM32f407驱动hc-sr04超声波测距模块
下一篇:如何用ST-LINK给STM32下载HEX文件
推荐阅读最新更新时间:2024-11-11 10:31
推荐帖子
- android BLE开发,传输大数据量时,如何控制输出传输速度?
- androidBLE每次只能发20字节数据,如果要联系发送几百字节,如果不进行流量控制,就会丢包。根据规范,每次向SDK层写一包数据,SDK发送成功后,会有一个接口通知应用层。但在实际测试发现,某些手机采用这种方式控制流量,还是会丢包,只能在两包数据之间认为延迟50ms左右。androidBLE开发,传输大数据量时,如何控制输出传输速度?楼主问题解决了吗?我们也是设置间隔为50ms,尽管这样,在连续发送数据比如150个字节的过程中还是经常会有发送不成功的情况出现
- nanstone RF/无线
- 关于ADS1115在采样时输入电压接近0却输出值65535或65534
- 刚才在写ADS1115的程序的时候用硬件仿真发现在有电压的时候是正常的,但如果输入电压基本上为0的时候,仿真出来的值就为65535或65534,这是为什么呀???求指导!!!!关于ADS1115在采样时输入电压接近0却输出值65535或65534肯定是程序出错了~麻烦你把程序亮一下~我帮你查一查“仿真”用的东西不正确呗。但不知道用什么来“仿”这个ADC。你是用的G2553吗?对,我用的也是G2553程序。呵呵呵楼主有程序和原理图可以分享一下吗。?也许是这个原因吧、你给
- Mid_summer 微控制器 MCU
- 快充伤电池?何同学给大家做了对比测试,来看结果呀~~
- 网上传快充比较伤电池,电量过低过高充电对电池不好,大家觉得有道理吗???如何更好的保护电池,使我们的电池更耐用?何同学给大家多了对比测试,来看看结果吧~关于何同学的测试结果,为什么会是这样子的,有懂的网友来分析分析吗???快充伤电池?何同学给大家做了对比测试,来看结果呀~~快充伤电池么?严格说,确实与慢充相比会对电池不利,但这种不利小到完全可以忽略,需要快充尽管放心快充就是。这个话题在本站都讨论过多次了。材料不一样啦 伤只能伤一点点,不能伤多了其实我
- 木犯001号 电源技术
- LPC2148开发板,全套资料
- 没什么好发的,把自己最近做的NXPLPC2148开发板资料发上来与大家分享!!!!!!!!先来几张靓照:LPC2148开发板,全套资料上图纸: 31个例程:如果需要,可以:http://shop58582707.taobao.com/ 呵呵,能不能送个板子给俺?这个不能送,投资那不少时间和金钱回复4楼tiankai001的帖子顶顶板子花多少钱买的啊?自
- zhaojun_xf 单片机
- EEWORLD大学堂----英飞凌XC82x83x系列产品介绍
- 英飞凌XC82x83x系列产品介绍:https://training.eeworld.com.cn/course/1970英飞凌XC82x83x系列产品介绍EEWORLD大学堂----英飞凌XC82x83x系列产品介绍
- chenyy 单片机
- “玩板”+ 共享单车控制板-GPS模块ublox MAX-M8Q
- 这种板子上的GPS模块有两种,一种是ublox的MAX-M8Q,还有一种是LYNQ的N10,调试的时候我还是选择的ublox的MAX-M8Q。.测试的时候使用串口透传模式,打通UART2---UART3,GPS模块是接在UART3上,波特率是9600.上位机使用u-box的u-center软件,还是挺方便的。接下来将考虑一下,如何解析这些数据,继续加油。上传一些MAX-M8Q的参考资料:此内容由EEWORLD论坛网友chenzhufly原创,如
- chenzhufly 测评中心专版
设计资源 培训 开发板 精华推荐
- SX1308_正负电源
- 使用 ROHM Semiconductor 的 BU4847 的参考设计
- SXNE5555
- ADP2503-4.5-EVALZ,用于 ADP2503ACPZ-4.5-R7、0.6 A、4.5V 降压升压转换器的评估板
- 基于 SCM-i.MX 6SX SoC i.MX 6 应用处理器的 EVB-SCMIMX6SX、SCM-i.MX 6SX 评估板
- 降压-升压配置中的典型应用模拟调光,适用于降压-升压或降压-升压拓扑的 RT8452 高压大电流 LED 驱动器控制器
- NOIP1SN0480A-HEAD-BD-A-GEVK:PYTHON 480 成像板(单色)
- 用于数据采集系统的 5V 模拟放大
- 可调恒流 电子负载 v2.0
- 用于仪表的 24 位 ADC 称重系统