OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 1847|回复: 16

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。 实际运行任务并不多,于是把这里改 ...
回复

使用道具 举报

  离线 

0

主题

1

帖子

0

精华

新手上路

Rank: 1

积分
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,帮顶
回复

使用道具 举报

  离线 

17

主题

359

帖子

1

精华

高级会员

Rank: 4

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

使用道具 举报

  离线 

485

主题

8万

帖子

30

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
118299
金钱
118299
注册时间
2010-12-1
在线时间
923 小时
发表于 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
回复

使用道具 举报

  离线 

55

主题

4456

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
5692
金钱
5692
注册时间
2012-11-26
在线时间
861 小时
发表于 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 任务运行不了
整文件夹替换之后就能运行了
回复

使用道具 举报

  离线 

6

主题

545

帖子

0

精华

高级会员

Rank: 4

积分
651
金钱
651
注册时间
2013-4-22
在线时间
29 小时
发表于 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 移植后还剩多少资源呢  能满足什么样的需求
回复

使用道具 举报

  离线 

6

主题

545

帖子

0

精华

高级会员

Rank: 4

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

使用道具 举报

  离线 

6

主题

545

帖子

0

精华

高级会员

Rank: 4

积分
651
金钱
651
注册时间
2013-4-22
在线时间
29 小时
发表于 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

主题

80

帖子

0

精华

高级会员

Rank: 4

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

使用道具 举报

  离线 

28

主题

216

帖子

0

精华

中级会员

Rank: 3Rank: 3

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

使用道具 举报

  离线 

3

主题

41

帖子

0

精华

初级会员

Rank: 2

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

使用道具 举报

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

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2017-12-15 20:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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