OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 14990|回复: 20

STM32F103C8T6 移植UCOSIII 内存不够

[复制链接]

6

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2014-2-7
在线时间
3 小时
发表于 2015-8-14 21:52:10 | 显示全部楼层 |阅读模式
5金钱
按照原子的书 移植,直到加入delay进行编译的时候 内存一下就爆了 C8是64Kb flash 20kb RAM 请问有在C8上移植成功过的例子吗
需要改什么  如何裁剪 修改

最佳答案

查看完整内容[请看2#楼]

多少年前的老坟头了,今天碰巧碰上了。 刚移植完成时,Program Size: Code=26420 RO-data=1300 RW-data=180 ZI-data=34652,主要是ZI-data过大。跟题主如出一辙 解决办法: 内存池大小修改: 在uC/LIB下的lib_cfg.h头文件中,大概在120行附近有一句宏定义 #define LIB_MEM_CFG_HEAP_SIZE 27u * 1024u 这就是内存池大小的定义,我的默认是27u * 1024u,也就是27K,远超C8T6的20K。 实际运行任务并不多,于是把这里改 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2017-9-12
在线时间
2 小时
发表于 2015-8-14 21:52:11 | 显示全部楼层
多少年前的老坟头了,今天碰巧碰上了。
刚移植完成时,Program Size: Code=26420 RO-data=1300 RW-data=180 ZI-data=34652,主要是ZI-data过大。跟题主如出一辙
解决办法:
内存池大小修改:
在uC/LIB下的lib_cfg.h头文件中,大概在120行附近有一句宏定义
#define  LIB_MEM_CFG_HEAP_SIZE        27u * 1024u
这就是内存池大小的定义,我的默认是27u * 1024u,也就是27K,远超C8T6的20K。
实际运行任务并不多,于是把这里改成了5u * 1024
重新编译:Program Size: Code=17472 RO-data=880 RW-data=180 ZI-data=12124  
就比较正常了
KEIL优化选项:
工程属性界面,在“C/C++”选项卡下,勾选“One ELF Section per Function”,该选项的作用是编译时丢弃没有使用到的代码。
再次编译:Program Size: Code=9772 RO-data=476 RW-data=156 ZI-data=12124  
主要是Code相关的大小大幅减小。
至此,整个系统的Ram占用和Flash占用都比较合理了
回复

使用道具 举报

2

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2014-4-28
在线时间
5 小时
发表于 2015-8-14 22:40:27 | 显示全部楼层
还没用过uCOS-III,帮顶
回复

使用道具 举报

105

主题

522

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1386
金钱
1386
注册时间
2012-10-23
在线时间
97 小时
发表于 2015-8-15 18:29:57 | 显示全部楼层
把不需要的功能裁剪掉吧
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-8-16 21:22:23 | 显示全部楼层
一个ucosiii不至于需要这么多内存,你哪里搞错了吧
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2014-2-7
在线时间
3 小时
 楼主| 发表于 2015-8-17 10:40:35 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
例4.1 UCOSIII 移植直接编译  
Program Size: Code=49016 RO-data=1448 RW-data=276 ZI-data=15364  

但是我按照原子哥的移植方式 移植到到自己用MDK5 自带的库里面就是变成这么大了 
Program Size: Code=48456 RO-data=1268 RW-data=300 ZI-data=38684  
用ZE的芯片编译出来的  用C8直接一堆内存不够 不知道ZI-data 为什么大这么多

只加载了以下模块  调用了串口3 和一个20字节的数组
#define RTE_DEVICE_STDPERIPH_FRAMEWORK
#define RTE_DEVICE_STDPERIPH_GPIO
#define RTE_DEVICE_STDPERIPH_RCC
#define RTE_DEVICE_STDPERIPH_USART
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13108
金钱
13108
注册时间
2012-11-26
在线时间
3812 小时
发表于 2015-8-17 11:02:48 | 显示全部楼层
回复【5楼】bear:
---------------------------------
你给OS开多少系统内存
学无止境
回复

使用道具 举报

6

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2014-2-7
在线时间
3 小时
 楼主| 发表于 2015-8-17 13:38:20 | 显示全部楼层
回复【6楼】jermy_z:
---------------------------------
请问怎么看 是指开始任务栈 大小吗 开始任务栈 给的512
回复

使用道具 举报

6

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2014-2-7
在线时间
3 小时
 楼主| 发表于 2015-8-17 14:50:07 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
原子哥 移植手册文件里的uCOS版本是 Version: V3.03.01  但是移植完的例程里版本是 Version: V3.03.00  我把整个工程里UCOSIII文件夹替换成 例程里的代码 编译直接 ZI-data就少了2W 。。。  原子哥能帮看看两个版本之间差了什么吗 还是哪边的定义要改?
而且之前按手册移植的Version: V3.03.01 任务运行不了
整文件夹替换之后就能运行了
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2015-8-17 15:44:49 | 显示全部楼层
R8我都移植没有问题,C8也不会有问题
回复

使用道具 举报

6

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2014-2-7
在线时间
3 小时
 楼主| 发表于 2015-8-17 15:52:52 | 显示全部楼层
回复【9楼】三叶草:
---------------------------------
请问R8 移植后还剩多少资源呢  能满足什么样的需求
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2015-8-17 17:09:53 | 显示全部楼层
回复【10楼】bear:
---------------------------------
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2015-8-17 17:10:21 | 显示全部楼层
回复【11楼】三叶草:
---------------------------------
Program Size: Code=32608 RO-data=944 RW-data=276 ZI-data=10308
回复

使用道具 举报

6

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2014-2-7
在线时间
3 小时
 楼主| 发表于 2015-8-18 09:48:10 | 显示全部楼层
回复【12楼】三叶草:
---------------------------------
好的 谢谢
回复

使用道具 举报

16

主题

84

帖子

0

精华

高级会员

Rank: 4

积分
853
金钱
853
注册时间
2016-4-7
在线时间
151 小时
发表于 2016-11-10 12:58:40 | 显示全部楼层
楼主,你在c8t6上移植成功的ucos工程,能给我发一份吗?我最近也在移植这个老是出问题
回复

使用道具 举报

28

主题

218

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
498
金钱
498
注册时间
2013-11-19
在线时间
92 小时
发表于 2016-11-14 11:39:50 | 显示全部楼层
可以在C8上移植的,你在OS的配置文件里把不需要的功能宏定义置0,裁剪系统功能即可。
回复

使用道具 举报

32

主题

236

帖子

0

精华

高级会员

Rank: 4

积分
993
金钱
993
注册时间
2017-8-11
在线时间
137 小时
发表于 2017-12-7 20:50:13 | 显示全部楼层
亲测成功
回复

使用道具 举报

15

主题

66

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2017-5-18
在线时间
35 小时
发表于 2018-2-7 15:28:28 | 显示全部楼层
请问GD的芯片  64Kflash + 8k ram  能不能移植ucosIII啊 老是失败
回复

使用道具 举报

9

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
263
金钱
263
注册时间
2018-7-4
在线时间
44 小时
发表于 2018-7-4 11:32:53 | 显示全部楼层
特意申请一个号来赞2L,十分感谢,虽然你可能看不到,因为隔了这么多年了!
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2017-5-30
在线时间
0 小时
发表于 2018-8-7 20:29:40 | 显示全部楼层
T我移植的UCOSIII到 C8T6 ,改 LIB_MEM_CFG_HEAP_SIZE 值   ZI-data 无变化。
程序也能运行。
问题可能出在哪里 ?
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2019-7-25
在线时间
4 小时
发表于 2019-7-31 16:26:46 | 显示全部楼层
可能是内存管理那部分代码的问题
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-30 19:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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