嵌入式操作系统裁剪是什么意思?

benjiangmail   2009-11-9 14:40 楼主
不裁剪不行吗?
我没有用到的功能我不用,比如任务的调度什么的,也不会影响我最终生成的可执行文件的大小啊。

回复评论 (13)

引用: 引用楼主 codesnail 的回复:
不裁剪不行吗?
我没有用到的功能我不用,比如任务的调度什么的,也不会影响我最终生成的可执行文件的大小啊。

我的意思是没有利用任务调度的所有状态
点赞  2009-11-9 14:41
呵呵,可以不裁剪.
裁剪可以使那些不被编译的模块就自然地不包含在系统中而被删掉了,这样就可以大大减小系统所占用的内存。
点赞  2009-11-9 15:01
引用: 引用 2 楼 lgy198612 的回复:
呵呵,可以不裁剪.
裁剪可以使那些不被编译的模块就自然地不包含在系统中而被删掉了,这样就可以大大减小系统所占用的内存。

不被编译的模块会占内存?你说占用flashrom的空间还有可能,release不就可以了吗?
点赞  2009-11-9 16:19
不裁剪会占用多余的FLASH空间,也是有可能会占用内存的,依具体情况不同。
点赞  2009-11-9 16:23
不剪裁会浪费好多flash空间和RAM空间的(占有RAM是因为内核要为模块创建一些必须的数据结构,即使这个模块在你的应用中并没有使用)
嵌入式的资源一般来说都相当的紧张

点赞  2009-11-9 16:57
引用: 引用 4 楼 veabol 的回复:
不裁剪会占用多余的FLASH空间,也是有可能会占用内存的,依具体情况不同。

多余的函数在没进入函数之前不会占用栈空间,没运行之前是不会申请堆内存的,请问占用内存一说何来?
点赞  2009-11-9 17:01
引用: 引用 5 楼 arnold9009 的回复:
不剪裁会浪费好多flash空间和RAM空间的(占有RAM是因为内核要为模块创建一些必须的数据结构,即使这个模块在你的应用中并没有使用)
嵌入式的资源一般来说都相当的紧张

能举个例子吗,我现在看的一个嵌入式操作系统源码,发现操作系统不会傻到去建立很大的数组,一般都是结构体指针,不申请堆内存的情况下,就是一个指针本身占用内存的大小(arm 为 4字节)。
点赞  2009-11-9 17:04
只有指针怎么实现数据/变量存储。。。。。OS里大多是链表,例如:OS初始化的时候,会根据你配置的任务数创建一个TCB链表,如果你定义的任务数是20,而实际知使用了10个任务,那么,就有10个TCB结构体占有的RAM空间浪费了
点赞  2009-11-10 08:40
引用: 引用 8 楼 arnold9009 的回复:
只有指针怎么实现数据/变量存储。。。。。OS里大多是链表,例如:OS初始化的时候,会根据你配置的任务数创建一个TCB链表,如果你定义的任务数是20,而实际知使用了10个任务,那么,就有10个TCB结构体占有的RAM空间浪费了

我想应该不会,我现在看的操作系统,任务控制块申请内存是在创建任务的时候,没有创建任务的时候只占四个字节
点赞  2009-11-10 09:15
引用: 引用 8 楼 arnold9009 的回复:
只有指针怎么实现数据/变量存储。。。。。OS里大多是链表,例如:OS初始化的时候,会根据你配置的任务数创建一个TCB链表,如果你定义的任务数是20,而实际知使用了10个任务,那么,就有10个TCB结构体占有的RAM空间浪费了

恩 有这点!
应该还有 邮箱 信号量 之类的 好像不用也会占的
点赞  2009-11-10 15:03
引用: 引用 10 楼 lyx_wq 的回复:
引用 8 楼 arnold9009 的回复:
只有指针怎么实现数据/变量存储。。。。。OS里大多是链表,例如:OS初始化的时候,会根据你配置的任务数创建一个TCB链表,如果你定义的任务数是20,而实际知使用了10个任务,那么,就有10个TCB结构体占有的RAM空间浪费了


恩 有这点!
应该还有 邮箱 信号量 之类的 好像不用也会占的

声明一点  ucosII上我见到这样说的,代码里确实这样做了!!
其他操作系统不知道!!
点赞  2009-11-10 15:05
把不用的功能去掉
点赞  2009-11-10 17:12
这个得等你的系统稳定下来裁减起来才合适。
点赞  2009-11-11 09:15
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复