完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32f103zet6(块1的第三小块)通过fsmc连接外部sram(is62w51216)。我修改sct文件,将fsmc的rw、zi都连到0x68000000。在线调试时发现全局变量初始值不对。fsmc.c里测试读写外部sram正常。还有,我写了fsmc.0的rw、zi均放在0x68000000,fsmc_m()里边的局部变量怎么还是映射到ram1去了?怎么将局部变量也放到ram2去?sct文件:
LR_IROM1 0x08000000 0x00080000 { ER_IROM1 0x08000000 0x00080000 { *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x20000000 0x00010000 { .ANY (+RW +ZI) } RW_IRAM2 0x68000000 0x100000 { FSMC.O (+RW +ZI) } } fsmc.c文件: unsigned long int fsmc_cnt=0x09; char x=0x05; void fsmc_m() { unsigned char a[257]={1}; x=x+3; fsmc_cnt+=5; a[0]=x; a[2]=fsmc_cnt; while(1); } |
|
相关推荐
2个回答
|
|
下面这个例程是否看过?
RepositorySTM32Cube_FW_F1_V1.6.0ProjectsSTM3210E_EVALExamplesFSMCFSMC_SRAM_DataMemory |
|
|
|
原因找到了,我是在主函数中初始化fsmc的,实际上必须在__main之前初始化fsmc。
“__main()作为c语言的入口函数,它主要做了以下工作: 1.把RO,RW从他们的加载域复制到他们的运行域中去(可以用在LINKER中设置RO=,RW=,来确定,也可以用scatter文件来定义) 2.初始化ZI域 3.跳到__rt_entry. 而库函数__rt_entry()会完成以下工作: 1.调用__rt_stackheap_init()设置stack和heap 2.调用__rt_lib_init()初始化相应的库函数, 3.调用main(),即是我们自己的应用程序了 4.调用exit()来处理main()函数的返回值” |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计
462 浏览 0 评论
2318 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2121 浏览 3 评论
4752 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2264 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 02:56 , Processed in 0.590122 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号