硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2535|回复: 6
收起左侧

[Embedded Studio] 请教Embedded变量被分配到地址0的解决办法

[复制链接]

8

主题

155

回帖

179

积分

初级会员

积分
179
发表于 2021-7-20 19:45:54 | 显示全部楼层 |阅读模式
本帖最后由 cjunrong 于 2021-7-20 20:53 编辑

新建了Embedded Stuido的STM32H7的工程,使用过程中发现一个蛋疼的问题,在创建一个关于串口的结构体的变量的时候,该变量被分配在地址0X0000 0000上,导致指向该变量的指针会被认为NULL,很多函数会直接退出(因为判断到空)。初步怀疑是变量优先分配在ITCM上。贴上3张图,一张是仿真界面中对该变量的检测情况,一张是内存定义,一张是软件的版本信息。各位坛友,如何设置变量分配区域,或者有什么解决办法,或者是我的工程有问题。
使用该软件在F4上跑的挺欢快的,没想到在H7上卡住了。

变量监测

变量监测

内存定义

内存定义

版本信息

版本信息

附件(工程文件):STM32H7_HAL_SES_DEMO.zip
STM32H7_HAL_SES_DEMO.zip (18.72 MB, 下载次数: 1)
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2021-7-21 09:09:50 | 显示全部楼层
看下你的工程的这个文件,默认的主RAM是不是AXI SRAM
QQ截图20210721090934.png

回复

使用道具 举报

8

主题

155

回帖

179

积分

初级会员

积分
179
 楼主| 发表于 2021-7-21 14:35:50 来自手机 | 显示全部楼层
eric2013 发表于 2021-7-21 09:09
看下你的工程的这个文件,默认的主RAM是不是AXI SRAM

确实是这里的问题,可以在这里设置使用的内存区域。在使用手册找了好久没找到对应的内容,没想到在这个icf 文件中。硬汉这软件已经得心应手了吧。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2021-7-21 14:50:50 | 显示全部楼层
cjunrong 发表于 2021-7-21 14:35
确实是这里的问题,可以在这里设置使用的内存区域。在使用手册找了好久没找到对应的内容,没想到在这个ic ...

也不是特别熟。
回复

使用道具 举报

8

主题

155

回帖

179

积分

初级会员

积分
179
 楼主| 发表于 2021-7-21 16:23:37 来自手机 | 显示全部楼层
eric2013 发表于 2021-7-21 14:50
也不是特别熟。

使用STM32H7,新建的工程默认的是:define region RAM   = ITCM_RAM1 + DTCM_RAM1 + AXI_RAM1;
之前解决变量被定义在地址0的方式是把一个没用到的变量定义在0,占用掉。
怕日后忘记了,这里做个记录方便日后查看。
使用__attribute__将变量定义在指定位置和指定区域的方式是:
uint32_t ul_aa __attribute__((section(".ARM.__at_0x00000000")));
uint8_t uc_bb __attribute__((section(".ITCM_RAM1")));
回复

使用道具 举报

6

主题

683

回帖

701

积分

金牌会员

积分
701
QQ
发表于 2021-7-21 21:39:18 | 显示全部楼层
也mark标记下
回复

使用道具 举报

219

主题

1109

回帖

1776

积分

至尊会员

More we do, more we can do.

积分
1776
发表于 2021-7-25 00:53:41 | 显示全部楼层
我一般搜文档,Segger的只有个很旧的BBS文章提到了,不能简单支持,还涉及链接相关的操作。
ARM比较好搜:Methods of placing functions and data at specific addresses
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-15 07:35 , Processed in 0.042760 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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