- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
DA14580的RAM38K_40K_42K配置方法
32K code代码空间的扩展(试)(38K、40K、42K)说明本文得以发布,特别感谢Dialog WC.IP(叶伟忠先生)提供方法及代码支援!原理:1、在Dialog配置代码中,内部有多个Case可设定默认是在System_ARMM0.c中设为Case 23,即38K SysRam + 12K RetRam方式:2、DA14580在上电后,即使没有下载程序,也会自行启动,扫描各端口有否启动代码,依次OTP、SPI(M)UART1/2/3/4、SPI(S)、IIC(S)。M即为有外部Master,DA14580为从端。S即为外部Slave,DA14580为主端。若此时SPI_S(Flash)有启动代码,就会自动搬32K code到RAM中,并自动从0行。 注:为啥只搬32K,是要顾及到内部OTP仅32K空间,若超限会出错。该原始引导程序,被固化到DA14580中。3、若有超过此32KB长度,需要在DA14580原始引导段搬好32K后,运行用户代码时,用户代码开始段(0的代码)来完成。合适的位置是在System_init之后,在main之前。即在System_ARMM0.c中,Systeminit后,main之前,增加code_loader程序。让code_loader将Flash中0x8008后的代码下载到接下来的RAM空间0。注:为啥RAM空间是0而对应的Flash中不是0x8000?因为Flash中最前面的8Byte是放识别数据,Flash放代码是从0x0008开始的,RAM放代码从0始。代码长度与Flash中的位置相差8Byte。扩展到38K代码空间:1、若代码超过32K,但在38K内,不用改case,仍沿用CASE23即可。2、将附件中system_ARMM0_38K.c及boot_vectors_38K.s文件,Copy到:dk_apps\src\plf\refip\src\arch\boot\rvds目录与system_ARMM0.c及boot_vectors.s在同一目录内。3、将附件中的scatterfile_common.sct_38K.sct文件,Copy到:dk_apps\scatterfiles目录,与scatterfile_common.sct文件同一目录内。4、在keil工程中,去掉原system_ARMCM0.c,及boot_vectors.s文件,增加system_ARMCM0_38K.c,及boot_vectors_38K.s文件,示例操作如下:在keil工程中,点选boot打开,鼠标右击弹开,左击选中Remove File’system_ARMCM0.c’,删除:再点选boot目录,增加system_ARMCM0_38K.c同理删除boot_vectors.s,增加boot_vectors_38K.s5、在keil工程中,选择调用scatterfile_common.sct_38K.sct文件(不再使用scatterfile_common.sct)然后,没有然后了!重新编译,烧到Flash,上电,广播…… OK,恭喜您,答对了!如果……,还是不OK,悲催了!别紧张,您的结果,与60%的扩内存用户相同!请参看附录1(内存扩展FAQ)扩展到42K代码空间:若代码接近42K空间,与扩展38K代码空间的方法相同,不过是挂42K对应的文件,再增加如下操作:在system_ARMM0.c中,已改case到CASE7。在arch_main.c中增加,BLE_reserved_memory段变量,并将其初始化为03、据Ret_RAM分配的大小,修改em_map_ble.h中对OFFSET_BUFFERS的定义:修改da14580_scatter_config.h,使之指向Ret_RAM的底部,不至赿界:5、若要修改PC仿真模式,如将23修改为7,则需要修改ini文件。Copy复制再修改:1)将第二行CE对应23模式。模式Number,转化为16进制,再X2,如7*2=14=0x0e,参见附件sysram_case7.ini,如下图:2)在如下设置菜单中,配置仿真模式:然后,没有然后了!重新编译,烧到Flash,上电,广播…… OK!如果不幸,又悲催了!别紧张,请参看附录1(内存扩展FAQ),若未能解决,找天午技术部!扩展到40K代码空间:若代码超过38K,但在40K内,改case到CASE15。不过是挂40K对应的文件,类似扩展到42K的方法,仅参数略有不同,如下操作:在system_ARMM0_40K.c中,已改case到CASE15。在arch_main.c中增加,BLE_reserved_memory
原创力文档


文档评论(0)