01、W601基于官方SDK裸机开发
一、搞清w601的Flash和RAM
flash:
从图中可以可以看出内部 FLASH 被分为了如下几个区域:
-
PHY PARAM AREA(4K)
-
QFLASH PARAM AREA(4K)
-
SECBOOT(56K),其中 SECBOOT PARAM 参数占用了 256 字节
-
RUN AREA(512K),其中 RUN PARAM 参数占用了 256 字节
-
UPD AREA(384K)
-
USER AREA(48K)
-
UDP PARAM(4K)
-
SYS PARAM Area(12K)
W601芯片之所以会这么分区是因为未来要基于固件升级而准备的,其中第三部分也就是SECBOOT区域其实就是Bootloader。
从图上来看,用户代码实际存放的位置是从0x8010000+0x100=0x8010100处开始的,所以用户最大可以用的空间只有1M - 0x8010100 = 0xEFF00。
RAM:
如图所示SRAM 区地址范围为:
0x20000000~0x20027FFF(160K),128K 挂载到二级 AHB 总线上,也就是图中 MAC RAM 区地址范围为:0x20028000~0x20047FFF(128K)。
CPU 等一级总线设备可以访问所有内存区域,但是二级总线上的设备只能访问二级总线上的 128K 内存。这里我们一般只用到 SRAM 区域,所以我
们在 MDK 中设置 SRAM 的范围就可以了。
二、MDK工程配置
在了解了上面的RAM和Flash的分布情况之后就很容易了解MDK里的这些配置了,用户可以根据自己代码的实际大小来更改上面的数据
sh的分布情况之后就很容易了解MDK里的这些配置了,用户可以根据自己代码的实际大小来更改上面的数据