热爱开源,喜欢分析操作系统架构
发布时间:2013-07-15 22:17:31
所谓人在江湖漂,哪有不挨刀,就算再牛逼的程序员也会写出有bug的程序。程序bug不可怕,最怕的是引发错误导致系统崩溃,这个在下位机编程是非常常见的,比如内存泄漏导致对不可读写地址进行读写操作导致的Hard Fault,违反MPU导致的MemManage Fault,这些错误都会让我们整个系统崩溃。相对而言,上位机程序bug一般就只会.........【阅读全文】
发布时间:2013-07-14 23:12:12
之前在动态内存分配说提到了对应MQX的所分配的一个动态内存块,是要定义一个所有者任务的。至于为什么一定要把动态内存以任务为组织形式来管理,是因为MQX是一个非常强调任务的系统。对应MQX而言,完成功能的载体是任务,分配内存是为了完成功能,那这些的内存的拥有者就必然是任务。之前说过,动态内存分配是采用了BLOCK.........【阅读全文】
发布时间:2013-07-14 21:18:58
前面说了一下任务的数据结构,就算是为了本文做个铺垫,现在我来说一下MQX是如何创建一个任务的。 MQX创建任务有多种方式,但创建任务的前提是必须有task_template_struct。这个task_template_struct可以通过静态的方式添加,也可以动态的添加。 举个静态添加的例子,在hello.c中: const TASK_TEMPLATE_STRUCT MQX_tem.........【阅读全文】