完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
做单片机开发,用的不是IAR就是KEILL,这两款IDE也说不上谁更好用,但是KEIL涉及一个版权问题,个人使用破解是没啥问题,但是公司商业使用会有点麻烦。
前段时间用STM32H750VB这块单片机做项目,这块单片机自带1M RAM,不需要外挂RAM了,价格上也是很香。但是,只有128K Flash,支持外挂扩产,加了一个8M的W25Q64 QSPI flash。开始是用KEIL做的,因为开源资料多,KEIL的Flash Download网上有参考,但是领导要换成IAR(因为一直都是用IAR的),捣鼓了两天,终于搞明白了IAR下的实现。 Boot 这里的BOOT就用内部128k flash做的,主要就是实现QSPI的初始化和地址映射,并实现跳转。网上的例程很多就不多做介绍。 FlashLoader FlashLoader是IAR自带的,把编译生成的文件写进flash,默认是不用管的,现在写进片外flash 就要对这个文件做一点修改。
uint32_t FlashInit(void *base_of_flash, uint32_t image_size, uint32_t link_address, uint32_t flags, int argc, char const *argv[]); uint32_t FlashWrite(void *block_start, uint32_t offset_into_block, uint32_t count, char const *buffer); uint32_t FlashErase(void *block_start, uint32_t block_size); 这几个函数需要自己来实现,对外部flash的初始化,写,擦除操作。有需要的我会上传自己的工程给大家参考。
我用的是W25Q64 8M FLASH,这里使用2M做外部代码空间 地址从0x90000000U到0x901FFFFF,工程是由cube生成的。 这里主要介绍一下flash loader要用到的三个文件 .board .flash .mac .board内容 0x08000000-0x0801ffff空间的擦写,也就是内部flash的下载 使用的IAR默认的.flash文件 0x90000000-0x901fffff空间的下载,就是自己写的.flash文件 打开下面的.flash文件 exe 就是我们之前编译生成的.out文件,它实现了包括初始化、擦、写在内的接口。 page 就是使用的w25q64的页大小256字节 block w25q64的块大小是4k (0x1000) 这里使用512块 总共是2M空间 flash_base 起始地址0x90000000 还有一点要注意的是 IAR仿真在下载程序会从当前工程的main开始运行,但是由于我们还没有开启内存映射所以是没有办法仿真的,这里就需要添加启动脚本。 .mac文件内容 execUserSetup() { } Access() { } __var x1; execUserReset() { x1 = __readMemory32(0x08000004,"Memory"); #SP = __readMemory32(0x08000000,"Memory"); #PC = x1; } execUserPreload() { } 我们需要让IAR在下载完程序后从boot空间开始运行,初始化QSPI并使能地址映射 再跳转到我们的外部flash空间 仿真调试,程序正常下载也可以跳到外部空间。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1874 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1658 浏览 1 评论
1143 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
759 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1720 浏览 2 评论
1963浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
789浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
611浏览 3评论
628浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
590浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-11 12:22 , Processed in 0.920082 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号