查看: 5905|回复: 3

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

[复制链接]

该用户从未签到

1

主题

1

帖子

0

新手上路

Rank: 1

积分
8
最后登录
2020-1-7
发表于 2020-1-6 14:12:52 | 显示全部楼层 |阅读模式
你好,
        我现在用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,我需要尽快的找到解决方法,拜托。




回复

使用道具 举报

该用户从未签到

713

主题

6372

帖子

0

超级版主

Rank: 8Rank: 8

积分
25023
最后登录
2025-7-31
发表于 2020-1-7 15:25:01 | 显示全部楼层
我建议你
1. 可以以截图的方式把你的配置方式呈现出来
2. XIP_BOOT_HEADER_DCD_ENABLE的值是多少
3. 你说的‘’不能工作‘’具体是种工作状态呢,能否解释一下
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

40

帖子

0

注册会员

Rank: 2

积分
147
最后登录
2023-7-27
发表于 2020-1-7 16:51:36 | 显示全部楼层
1 改工程配置
2 改FLEXRAM配置
3 改MPU配置
回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

40

帖子

0

注册会员

Rank: 2

积分
147
最后登录
2023-7-27
发表于 2020-1-7 16:55:10 | 显示全部楼层
huangxuejia-292 发表于 2020-1-7 16:51
1 改工程配置
2 改FLEXRAM配置
3 改MPU配置

工程配置你应该知道在哪里改了,就是改IDE里面的配置。
FLEXRAM配置,需要改代码,在启动代码前面修改。怎么改自己百度。
MPU配置要根据 FLEXRAM的分配来修改。

对了,还需要把栈放到最前面。原来是end,要放到start
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-8-2 14:54 , Processed in 0.087870 second(s), 22 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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