完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用STM32L011做Flash的烧写功能,按Word烧写没有问题,但是按Half-Page烧写总是不成功。按Word烧写的效率太低。在L0的库函数中未见Half-Page的例子,规格书(2016年11月版本)中有例程,但也没法成功,寄存器显示PGAERR错误,但我的地址确定是在同一个half page 里面( 0x0800 1500 - 0x0800 1540),不知哪里出了问题,各位指点一下,万分感激!
|
|
相关推荐
10个回答
|
|
难道这个功能只能运行在sram吗?
|
|
|
|
自问自答,将函数放在sram中运行即可
|
|
|
|
我也遇到同样的问题,请问你解决了吗?
|
|
|
|
|
|
|
|
|
|
|
|
这样sram的空间不就更小了?
|
|
|
|
如何将这个函数放在sram中运行?
|
|
|
|
1、在 keil 的 Options for Target --> Linker 下去掉 “Use Memory Layout Target Dialog”的选项。 2、在编译生成文件中找到 .sct 后缀的分散文件,如下: ; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************************* LR_IROM1 0x08000000 0x00080000 { ; load region size_region ER_IROM1 0x08000000 0x00080000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x20000000 0x00014000 { ; RW data *.o(RAMCODE) 或 stm32l1xx_hal_flash_ramfunc.o (+RO) .ANY (+RW +ZI) } } 上面 *.o(RAMCODE) 或 stm32l1xx_hal_flash_ramfunc.o (+RO)二选一 3、以#pragma arm section code = “RAMCODE” 开头,以#pragma arm section结尾。将所有需要放到RAMCODE section的函数包括进来。编译时,编译器会自动将这些函数放到RAMCODE所在0x20000000开始的区域。如下: #pragma arm section code = "RAMCODE" (此处写要在SRAM中运行的函数代码) #pragma arm section |
|
|
|
很简单的东西
|
|
|
|
自己查查代码
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
969 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
954 浏览 2 评论
2066 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1162 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1587 浏览 1 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 03:52 , Processed in 0.819407 second(s), Total 90, Slave 73 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号