1172_FreeRTOS QEMU项目信息梳理

80 篇文章 37 订阅
69 篇文章 11 订阅

    全部学习汇总: GitHub - GreyZhang/g_FreeRTOS: learning notes about FreeRTOS.

    首先看一下MPS2是个什么概念。

    没有找到MPS2,但是找到了一个MPS2+,看样子这个是一个开发板的名字。

    开发工具上,有IAR以及gcc的编译器可以选择。对于我自己的学习来说,自然是后者了。GNU等开源的组织的确是很好的网络雷锋,让我们接触新的技术方便了很多。

    这部分内容很简单了,描述了相应的QEMU的工程分别在哪里。对我来说,需要先去确认一下第二个工程。工程包应该是我之前接触过的工程包,包含若干不同的移植版本。正好,重新下载一份也可以确认一下现在已经有的port是否包含我用的MCU。

    QEMU的工程,包含一个闪灯程序和一些其他功能的配置demo。下面这个格式可能是QEMU的用法,目前来说QEMU的操作还是一个新的待学习技能块。

    这个是IAR的版本,不是我关注的重点。可以看一下下面的注意事项应该就可以了。这里要求调试结束的时候需要杀死QEMU对话,否则的话下一次的链接会报错。

    这是使用gcc的版本说明了。

    1. 需要有支持arm的这个gcc的版本以及GNU make。

    2. 通过设置mainCREATE_SIMPLE_BLINKY_DEMO_ONLY来决定是否只生成闪灯的程序还是更复杂的demo。

    3. 编译的过程应该是很通用的处理方式了,这个makefile中还是支持多进程或者多线程的编译的。

    4. 需要安装QEMU,接下来可能先得了解一下QEMU的简单使用。

    5. gdb的调试,可以使用命令或者eclipse的图形化界面调试。

    这是一个eclipse的开发调试方式,虽然makefile的自动化环境很方便,但是在调试上应该还是不如GUI。或许,接下来我的首选的调试的方式还是这个。这里有一个关键点,在import工程的时候不能够勾选复制,而之前的经验中为了保证一个原始副本,我通常会选择这个选项。这个倒是可以去测试一下,是否是一个建议性选项。另外,调试需要设置gdb的服务,这部分后面的调试中得好好看一下,这里讲解看起来并不是很详细。

    详细调试的时候可以配置的信息,其中一个是中断的频次,而中断其实是来自于QEMU仿真。而关于QEMU的中断的仿真支持信息这里也有一个说明,后面需要探索一下如何使用。

    1. 需要注意的一点,Cortex-M的内核中软件中断的优先级数字越小代表的优先级越高。一定要保证中断的优先级不要高于configMAX_SYSCALL_INTERRUPT_PRIORITY,否则的话可能会引起系统的崩溃。这一点之前我在MCU上调试的时候是遇到过问题的,这里算是复习一下了。

    2. 另外一点是,虽然Cortex-M的优先级的表达是一个8bit的数值,但是最低优先级的处理不能默认设置一个255。因为不同的厂商MCU的设计实现可能会有差异,比如F7的MCU最低优先级其实是15。

    3. 针对每一个MCU,都给出了一个效率上最高的基础类型定义。

    1. ISR触发一个任务上下文切换没有什么特殊的要求,可以直接使用提到的两个宏来实现。这个接口,会保持中断的使能。

    2. 其他的移植中会有什么特殊要求呢?

    1. 这是一个ISR设计的模板,中断直接使用了一个给任务的通知来进行任务同步。依然使用了portEND_SWITCHING_ISR接口来保证从中断返回到任务。

    2. 只有带有FromISR结尾的OS API接口可以从ISR中调用,而且必须满足中断的优先级不会高于上面两个数值。

    1. FreeRTOS需要使用两个中断还有一个SVC。

    2. OS是否是中断模式,有一个配置的状态位。

    3. 编译器选项需要正确。

    4. 存储的分配,这里主要还是说heap的操作。

    终止调度的接口暂时还没实现。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值