|
看过几个的嵌入式操作系统,汇编的精巧,移植难,看明白也不容易.C的庞大,吃内存.我想要一个综合两者的优先点系统,于是DIY一方,尝试了一下.
编译器-IAR,CPU-M64,最高级优化,
只含定时器,两个跑马灯任务,CODE 1400Byte,RAM 269Byte,不含中断嵌套,可以关闭内核堆栈,加入信号量,互斥体,邮箱后,任务堆栈,函数调用深度堆栈(RSTACK)都要增加点击此处下载ourdev_181833.rar(文件大小:143K)
一个信号量,一个互斥体,一个邮箱,三个小任务,CODE 2717Byte,RAM 465Byte,含允许一级中断嵌套的内核堆栈点击此处下载ourdev_181834.rar(文件大小:166K)
一个信号量 两个小任务,CODE 1947Byte,RAM 320Byte 关闭中断嵌套的内核堆栈点击此处下载ourdev_181835.rar(文件大小:152K)
一个互斥体 两个小任务,CODE 1991Byte,RAM 322Byte 关闭中断嵌套的内核堆栈点击此处下载ourdev_181836.rar(文件大小:153K)
一个邮箱 三个小任务,CODE 1991Byte,RAM 405Btye 关闭中断嵌套的内核堆栈点击此处下载ourdev_181837.rar(文件大小:152K)
基本上是用C写的,用汇编部分只是对寄存器进行出栈,入栈,中断出入.
抢先式调度,同优先级的按FCFS原则进行调度
看到最后生成的代码,和内存占用量,离最初的目标还好远.
发代码时又有了一个新的想法:如果信号量,互斥体,邮箱不使用超时机制,代码量应该可以更小,但是不用超时机制会怎样,怎样应用呢?
不使用超时机制一个信号量,一个互斥体,一个邮箱,三个小任务,CODE 1918Byte,RAM 404Byte,不允许一级中断嵌套的内核堆栈点击此处下载ourdev_181955.rar(文件大小:152K)
欢迎各位验证,拍砖,找虫,打压(尽可能生也更小的代码和内存占用量),共同探讨嵌入式操作系统及应用(应用是最终目的^_^) |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|