zhao yang

如何在MCUXpresso IDE修改例程的内存配置,让其能够正常工作?

Discussion created by zhao yang on Jan 5, 2020
Latest reply on Jan 8, 2020 by Jing Pan

你好,
我现在用MIMXRT1060-EVK开发网关,开发环境:MCUXpresso IDE v11.1.0_3209 ,SDK版本:2.7.0。下面我将以sdk中两个例程来描述我的问题。
例程分别是:
evkmimxrt1060_lwip_httpssrv_ota_freertos.
evkmimxrt1060_lwip_httpssrv_mbedTLS_freertos.

一、问题描述:
正如上面所说,我要开发一个网关应用,包含ota、enet、wifi、bt功能。我将以evkmimxrt1060_lwip_httpssrv_ota_freertos为基础,将wifi和bt驱动以及应用移植过来。
1.移植之前:
我先测试了evkmimxrt1060_lwip_httpssrv_ota_freertos例程,能够正常进行ota升级。编译的memory region如下:
Memory region Used Size Region Size %age Used
BOARD_FLASH: 364316 B 768 KB 46.33%
SRAM_DTC: 101472 B 128 KB 77.42%
SRAM_ITC: 5104 B 128 KB 3.89%
SRAM_OC: 59944 B 768 KB 7.62%
BOARD_SDRAM: 0 GB 30 MB 0.00%
NCACHE_REGION: 0 GB 2 MB 0.00%

2.移植wifi驱动之后:
编译之后发现memory region中 SRAM_DTC Used 超出了100%,达到了115.32%。

总结:对比以上的现象,这个SRAM_DTC超过100%的问题是我要解决的,下面是我验证的方法,但都验证失败。

二、我做的验证(均失败)
我从以下几个方面做了验证,但是均不能解决这个问题。
1.我知道MIMXRT1062DVL6A芯片SRAM_DTC+SRAM_ITC+SRAM_OC=1M,所以我把SRAM_DTC空间扩大到256K,SRAM_OC更改为640K。编译
之后,未出现SRAM_DTC Used 超过100%,但是下载到开发板,程序并没有运行。我尝试了其他的分配,均不能工作。

2.我对比了sdk中其他的例程,比如evkmimxrt1060_lwip_httpssrv_mbedTLS_freertos,编译之后,他的memory region如下:
Memory region Used Size Region Size %age Used
BOARD_FLASH: 387476 B 8 MB 4.62%
BOARD_SDRAM: 157180 B 30 MB 0.50%
NCACHE_REGION: 216 B 2 MB 0.01%
SRAM_DTC: 0 GB 128 KB 0.00%
SRAM_ITC: 0 GB 128 KB 0.00%
SRAM_OC: 0 GB 768 KB 0.00%
从以上的现象来看,它把heap和stack以及.bss和.data链接到了BOARD_SDRAM和NCACHE_REGION ,而在
evkmimxrt1060_lwip_httpssrv_ota_freertos例程中,heap、stack、.bss和.data链接到了SRAM_DTC。所以我对比了两个工程的Memory和Managed
Linker Script,将evkmimxrt1060_lwip_httpssrv_ota_freertos的配置更改为evkmimxrt1060_lwip_httpssrv_mbedTLS_freertos的配置。发现编译没有问
题,但是依旧程序不能工作。下面是我更改的具体步骤:
步骤一:基于evkmimxrt1060_lwip_httpssrv_ota_freertos在memory configuration editor,调整了NCACHE_REGION和BOARD_SDRAM的顺序,让配置
同evkmimxrt1060_lwip_httpssrv_mbedTLS_freertos一样。
步骤二:我在settings---->Managed Linker Script,将heap和stack,.bss 和 .data更改为evkmimxrt1060_lwip_httpssrv_mbedTLS_freertos配置。

3.我又重新的导入了一个新的lwip_httpssrv_ota_freertos例程,按照2方法,做了同样的操作,发现依旧不能工作。

4.我找了同evkmimxrt1060_lwip_httpssrv_ota_freertos,memory regoin配置同样的例程,比如新导入的evkmimxrt1060_wiced_iperf_4343W例程,按照
2的方法,做了同样的操作,发现依旧也不能工作。

总结:以上是我做的尝试,但是均已失败告终。我需要ota、enet、wifi和bt,甚至可能后面需要更多的其他驱动,我将以evkmimxrt1060_lwip_httpssrv_ota_freertos进行我的开发,希望你们能够帮助我解决这个问题。注意:我用的开发环境是MCUXpresso IDE v11.1.0_3209,SDK:2.7.0。除此之外,我想过把ota的应用例程移植到evkmimxrt1060_lwip_httpssrv_mbedTLS_freertos历程中,但是在最终的例程出现了同样的问题。我需要你们的帮助,我建议你们从新导入evkmimxrt1060_lwip_httpssrv_ota_freertos例程,先测试能不能正常工作,然后用你们的方法更改memory configuration 同evkmimxrt1060_lwip_httpssrv_mbedTLS_freertos一样。

以上就是我的描述。我的邮箱是:2291127076@qq.com,我需要尽快的找到解决方法,拜托。

Outcomes