{"push_id":761343674,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"4ec6558edaaa951dccfb9f37bc9d84bafa31c52b","before":"04cf7473fc90224b99016e2a52e64e9177bf3edb","commits":[{"sha":"4ec6558edaaa951dccfb9f37bc9d84bafa31c52b","author":{"email":"98feddde49467195080201ebdc3013228c2aa715@qq.com","name":"guxiaodian"},"message":"main.c\n\n在keil下编译，又减少了18字节的ROM(超过10％了)。应该运行效率会更高。\r\n\r\n－－－－－－－－－－－－－－－－－－以下为说明－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－\r\n\r\n小小调度器任务函数的写法主要注意的，主要有三点：\r\n\r\n1） 任务函数内部变量，建议都用静态局部变量来定义。\r\n2） 任务函数内不能用switch语句。\r\n3） 任务函数内，不能用return语句。 因为return已经被赋予任务延时的特定意义。（这是返回型任务函数版本的一个强制要求）\r\n\r\n这三点，并不会明显造成写程序的不方便。\r\n－－－－－－－－－－－－－－－－－－－－－－－－－－－\r\n从裸奔到使用OS操作系统或调度系统的代价主要有：\r\n\r\n硬件资源代价（对RAM和ROM的消耗），学习代价（学会其原理，并掌握其用法），移植代价（往不同cpu上移植的工作量），效率代价（使用调度系统后带来的额外cpu负担），商业代价（版权费用），稳定性代价（是否引入潜在不稳定因素，或者增大bug跟踪调试工作量）。\r\n\r\n从这几方面来讲，应用小小调度器的代价，都是非常小的。\r\n1） 硬件资源代价： 前面的优化版本已经说明问题。keil下，本例程ram消耗 : 22字节，rom消耗126字节.\r\n2） 学习代价： 小小调度器总共只有十多行代码，如果我们做一个简单的解释说明，理解起来其实是很快的。我相信学习时间比其他调度系统要短。\r\n3） 移植代价： 几乎没有什么移植工作量，对于各种cpu,几乎是通吃。\r\n4） 效率代价： 我们一直在努力优化，相信调度效率已经不低了。比如任务切换时间，应该是可以做到uS级别，甚至亚uS级别。\r\n5） 商业代价： 小小本调度器为免费使用，无需支付任何费用。\r\n6） 稳定性代价：小小调度器本质上仅仅是几个宏而已，未涉及任何对内部寄存器或堆栈的操作，避免了引入不稳定风险因素，所有操作都在可预见，可把控的前提下进行。","distinct":true,"url":"https://api.github.com/repos/guxiaodian/51-microcontroller-scheduler/commits/4ec6558edaaa951dccfb9f37bc9d84bafa31c52b"}]}