本帖最后由 zengshiyi 于 2017-6-14 16:33 编辑 使用STM32L011做Flash的烧写功能,按Word烧写没有问题,但是按Half-Page烧写总是不成功。按Word烧写的效率太低。在L0的库函数中未见Half-Page的例子,规格书(2016年11月版本)中有例程,但也没法成功,寄存器显示PGAERR错误,但我的地址确定是在同一个half page 里面( 0x0800 1500 - 0x0800 1540),不知哪里出了问题,各位指点一下,万分感激! |
STM32L011D4芯片用SWD无法下载程序
求助:STM32L0系列标准库哪里下?
STM32L051低温时LPUART串口波特率异常
STM32L051单片机ADC如何彻底关闭?
STM32L051C8进入低功耗模式电流偏大
STM32L052C8T6通过I2C模拟读16位数
STM32L0的VLCD外接5V会有问题吗
求助!!使用STM32L073 IO口模拟IIC接口读写AT24CM01 程序不停...
STM32L072RB写Bank2 EEPROM不响应中断
STM32L031无法进入boot
将函数放在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、若采用 *.o(RAMCODE) 格式,则以#pragma arm section code = “RAMCODE” 开头,以#pragma arm section结尾。将所有需要放到RAMCODE section的函数包括进来。编译时,编译器会自动将这些函数放到RAMCODE所在0x20000000开始的区域。如下:
#pragma arm section code = "RAMCODE"
(此处写要在SRAM中运行的函数代码)
#pragma arm section