硬汉嵌入式论坛

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

[STM32H7] V7-005_TCM,SRAM等五块内存的超方便使用方式 iar 不能够使用 ??

[复制链接]

610

主题

3052

回帖

4902

积分

至尊会员

积分
4902
发表于 2019-4-4 10:43:56 | 显示全部楼层 |阅读模式
V7-005_TCM,SRAM等五块内存的超方便使用方式 这个历程,只能使用 mdk 编译器,

那 iar 的编译器使用起来岂不是很麻烦啊 ??

有没有其他的什么方法可以解决啊 ?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106760
QQ
发表于 2019-4-4 10:46:11 | 显示全部楼层
IAR暂时没有好的方案。
使用下一章动态内存分配章节即可,就方便了。
回复

使用道具 举报

610

主题

3052

回帖

4902

积分

至尊会员

积分
4902
 楼主| 发表于 2019-4-4 14:12:16 | 显示全部楼层
eric2013 发表于 2019-4-4 10:46
IAR暂时没有好的方案。
使用下一章动态内存分配章节即可,就方便了。

好的
回复

使用道具 举报

0

主题

15

回帖

15

积分

新手上路

积分
15
QQ
发表于 2019-4-9 10:20:31 | 显示全部楼层
IAR可以修改ICF文件,你可以定义region,比如说:
define region AXI_SRAM_region = mem:[from 起始地址 to 终止地址];
然后你代码里面比如说定义一个大数组在前面加上
#pragma location = ".AXI_SRAM"
ICF文件的最后面写place in AXI_SRAM_region {section .AXI_SRAM};


其实我觉得比keil的还要简单一些。。。。
虽然我手上没有H7的板子没有试过H7,但是我F4都是这么来搞的。。。。

评分

参与人数 1金币 +100 收起 理由
eric2013 + 100 很给力!

查看全部评分

回复

使用道具 举报

610

主题

3052

回帖

4902

积分

至尊会员

积分
4902
 楼主| 发表于 2019-4-9 10:26:48 | 显示全部楼层
本帖最后由 hpdell 于 2019-4-9 11:42 编辑
kippsun 发表于 2019-4-9 10:20
IAR可以修改ICF文件,你可以定义region,比如说:
define region AXI_SRAM_region = mem:[from 起始地址 to ...

好的,f4  的可以,估计 f7, h7 的应该也是可以的吧
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106760
QQ
发表于 2019-4-9 10:42:01 | 显示全部楼层
kippsun 发表于 2019-4-9 10:20
IAR可以修改ICF文件,你可以定义region,比如说:
define region AXI_SRAM_region = mem:[from 起始地址 to ...

太给力了,教程可以升级下了,非常赞,实测可用
回复

使用道具 举报

0

主题

15

回帖

15

积分

新手上路

积分
15
QQ
发表于 2019-4-9 11:04:19 | 显示全部楼层
eric2013 发表于 2019-4-9 10:42
太给力了,教程可以升级下了,非常赞,实测可用

次序有点乱了,先定region然后改place in 最后代码里面加#pragma location = "xxx"
额。。。我以为大家都知道的。。。只是用iar用的人没keil的多而已。。。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106760
QQ
发表于 2019-4-9 11:06:35 | 显示全部楼层
kippsun 发表于 2019-4-9 11:04
次序有点乱了,先定region然后改place in 最后代码里面加#pragma location = "xxx"
额。。。我以为大家 ...

还是用的少,不熟练造成的。

太感谢了,下周正好升级下教程里面的这个章节。
回复

使用道具 举报

610

主题

3052

回帖

4902

积分

至尊会员

积分
4902
 楼主| 发表于 2019-4-9 16:11:45 | 显示全部楼层
本帖最后由 hpdell 于 2019-4-9 16:13 编辑
eric2013 发表于 2019-4-9 11:06
还是用的少,不熟练造成的。

太感谢了,下周正好升级下教程里面的这个章节。

不错不错哇,给力
另外这个 定义方法 与 动态 内存管理,同一个内存区域的话不能够同时使用吧 ? 还是说需要 预先设定好地址及大小后他们可以同时使用 ???
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106760
QQ
发表于 2019-4-9 16:15:37 | 显示全部楼层
hpdell 发表于 2019-4-9 16:11
不错不错哇,给力
另外这个 定义方法 与 动态 内存管理,同一个内存区域的话不能够同时使用吧 ?  ...

可以同时使用,你分配好后,专门分配一块给动态内存。
回复

使用道具 举报

610

主题

3052

回帖

4902

积分

至尊会员

积分
4902
 楼主| 发表于 2019-4-9 16:19:16 | 显示全部楼层
eric2013 发表于 2019-4-9 16:15
可以同时使用,你分配好后,专门分配一块给动态内存。

好的,多谢多谢
回复

使用道具 举报

610

主题

3052

回帖

4902

积分

至尊会员

积分
4902
 楼主| 发表于 2019-4-10 09:35:11 | 显示全部楼层
kippsun 发表于 2019-4-9 11:04
次序有点乱了,先定region然后改place in 最后代码里面加#pragma location = "xxx"
额。。。我以为大家 ...

这样 定义的貌似只能够作为 全局 使用,不能够作为局部使用,有没有什么方法可以作为 局部使用啊 ?
回复

使用道具 举报

0

主题

15

回帖

15

积分

新手上路

积分
15
QQ
发表于 2019-4-10 11:36:28 | 显示全部楼层
本帖最后由 kippsun 于 2019-4-10 11:50 编辑
hpdell 发表于 2019-4-10 09:35
这样 定义的貌似只能够作为 全局 使用,不能够作为局部使用,有没有什么方法可以作为 局部使用啊 ?

啥叫局部使用,栈?
这个方法可以设置堆栈,iar自带的已经给你设置了,
栈跟堆是block CSTACK跟block HEAP,最后
place in xxx_region {block CSTACK,block HEAP};
这样子可以指定堆跟栈的位置。
但是如果把堆跟栈放在外部sdram的时候要设置MPU,不然要进硬错误。(起码F4是这样子的)
回复

使用道具 举报

610

主题

3052

回帖

4902

积分

至尊会员

积分
4902
 楼主| 发表于 2019-4-10 11:47:03 | 显示全部楼层
kippsun 发表于 2019-4-10 11:36
啥叫局部使用,栈?
这个方法可以设置堆栈,iar自带的已经给你设置了,
堆跟栈是block CSTACK跟block H ...

ok,我试试看
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 03:33 , Processed in 0.221280 second(s), 35 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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