OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3547|回复: 1

W601FLASH与RAM内存分配问题

[复制链接]

0

主题

0

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2019-10-24
在线时间
9 小时
发表于 2019-10-25 10:23:55 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 CrisJay 于 2019-10-25 10:25 编辑

有几个关于W601内存分配的问题需要解答:
1、在W601手册中FLASH有很多的分区,其中SECBOOT区类似于bootloader功能,那我能否不使用这个bootloader直接将代码下载到0x08000000运行,或者是否能够将我自己的bootloader程序放到SECBOOT区从而实现我自己的bootloader功能?
2、在W601寄存器手册中RAM被分为160K的一级总线RAM和128K的二级总线RAM,手册说CPU等一级总线设备可以访问所有内存区域,二级总线设备只能访问二级总线的128K内存,但是我不是很明白二级总线设备如UART什么情况下会访问内存。同时在原子开发指南中说到:“我们一般只用到SRAM区域,所以我们在MDK中设置SRAM的范围就可以了”(《W601开发指南 - 裸机例程_V1.0》72页)也就是说我们一般不会用到二级总线的128K内存。但是根据二级总线内存的描述,有些设备只能访问二级内存,那不是意味着二级内存可以被芯片所有部分访问到,而一级内存有些部分访问不到,这样我们不是应该一般情况下使用二级内存而非一级内存?(因为所有情况都能使用二级内存,有些情况不能使用一级内存)
-----------------------------
对于第二个问题我疑惑的起因是:在程序编译过程中我想将所有的RW和ZI都放在128K的二级内存中,这样我可以空出160K的一级内存给CPU进行分配。但是不是很确定这样是否可行,说明文档也使我有点困惑。希望能够得到解答。

最佳答案

查看完整内容[请看2#楼]

1.理论上应该是可以从0x08000000运行的,不然SECBOOT区也会运行不了,我试过如果直接从0x08000000运下载代码是运行不了,可能与下载算法有关(W601的下载算法工程在官方SDK包里面WM_SDK_W60X_G3.01.00\WM_SDK\Doc\W60X_QFLASH_Driver_for_SWD\W60X_QFlash),最好直接去问问芯片原厂,加QQ群问一下:797416020 2.官方手册上说:CPU等一级总线设备可以访问所有内存区域,二级总线上的设备只能访问二级总线上128KB的内存,像这些二级总 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

163

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2754
金钱
2754
注册时间
2017-5-17
在线时间
430 小时
发表于 2019-10-25 10:23:56 | 显示全部楼层
1.理论上应该是可以从0x08000000运行的,不然SECBOOT区也会运行不了,我试过如果直接从0x08000000运下载代码是运行不了,可能与下载算法有关(W601的下载算法工程在官方SDK包里面WM_SDK_W60X_G3.01.00\WM_SDK\Doc\W60X_QFLASH_Driver_for_SWD\W60X_QFlash),最好直接去问问芯片原厂,加QQ群问一下:797416020
2.官方手册上说:CPU等一级总线设备可以访问所有内存区域,二级总线上的设备只能访问二级总线上128KB的内存,像这些二级总线上的专用内存,如果不使用二级总线上的外设是可以直接使用的,没什么问题。怕的是如果都是用二级总线上的内存,导致二级总线上的外设可能会没有多余的内存使用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-12 11:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表