随笔分类 - 操作系统_mbed
记录有关mbed的技术资料
摘要:STM32,ARM cortex-M3和RTOS的栈结构
阅读全文
摘要:新建了一个project,coding完成,组织好源码文件,设置Keil MDK的option之后,进行build,发现总是出现: Error: L6405E之类的错误。 googoel了一阵子也无解,于是乎,自己摸索了一下,发现是和Keil MDK下面的“Excute-Only Code”选项有关
阅读全文
摘要:在使用CMSIS RTX这个RTOS时,遇到了如何设计异常的问题。(异常包含中断,为了让搜索引擎更好搜索,本文不区分异常和中断,但是其实异常是中断更为通用的叫法。) 问题有2个: 第一个,如何设置异常优先级。 第二个,进程的优先级和异常优先级要如何匹配。 我们先看第一个问题,如何设置异常优先级。 在
阅读全文
摘要:通常异常包括一些系统异常,以及中断。 异常类型 Cortex-M3处理器支持多种类型的异常: 其中第1类异常的优先级是固定,不可改变的。其他都是可以修改的。 Cortex-M3处理器提供了PRIMASK选项,用来屏蔽所有可编程的中断;提供了FAULTMASK来屏蔽HardWare Fault和所有可
阅读全文
摘要:在开发过程当中遇到Keil build错误,检查发现时是链接时出错了。 错误内容为: Error: L6406E: No space in execution regions with .ANY selector matching Error: L6407E: Sections of aggrega
阅读全文
摘要:最近在开发项目的过程有用到CMSIS RTOS RTX RTOS,需要关注他的授权license。 注意,我使用的是CMSIS RTOS RTX,和Keil RTX。 在CMSIS RTOS RTX的源码中,看到这应该是基于BSD的license,使用起来就放心了。 而Keil RTX就不一样了,他
阅读全文
摘要:在项目开发的过程中,发现程序总是死在判断DMA一次传输是否完成这个标志位上。进一步回退分析,发现是在I2C读的过程中,有使用到DMA去取外部I2C设备的data。 但是data并没有读完,Data为32bits,DMA在读到18bits时,就出现读不到data bit了。导致I2C硬件模块不能进一步
阅读全文
摘要:System Resources RTX内核通过任务进程控制模块,来标识一个任务进程。这个模块是一个动态分配的内存单元,存储着任务进程的所有控制和状态变量。当通过调用os_tsk_create or os_tsk_create_user函数来创建一个任务进程时,对应的TCB就被创建了。 TCB所占用
阅读全文
摘要:System Task Manager 任务管理器是一个系统任务进程,在每次RTX内核时钟发生timer tick interrupt时会运行,也就是每次RTX内核时钟发生中断都会运行。这个进程拥有最高的优先级而不会被其他进程取代。这个进程的基本任务,就是负责调度用户的任务进程。 基于RTX内核的用户任务进程,并不真正意义上是同时运行,他们是分时间片来运行的,time-sliced。可用的CPU...
阅读全文
摘要:基于ARM7™ and ARM9™的RTX内核,利用其处理器的一个标准timer来产生RTX内核时钟。基于Cortex-M的RTX内核,则利用SysTick时钟。 因为每家基于ARM的处理器,时钟外设可能不同,所以可以在RTX_Config.c中配置RTX内核时钟的参数。注意Cortex-M处理器是采用RTX_Conf_CM.c。 其中有2个重要的参数列在下面: timer clock value...
阅读全文
摘要:RTX内核基于并行进程的概念。在RTX内核中,一个任务进程在实现的时候,被划分成了很多更小的同时运行的进程。 使用RTX内核可以得到很多好处: 现实世界的很多任务都是并行处理的,这一概念可以很容易的基于RTX内核来编程实现。 可以创建不用的任务体,这些任务体可以允许在不同时刻运行。因为每个任务体都由一个单独的任务进程来实现,所以每个任务进程的运行是相互独立的。 任务进程之间可以实现按照优先级调度...
阅读全文
摘要:RTX内核library可以使用在以下ARM设备上: ARM7 and ARM9 Cortex-M0/M1, Cortex-M3, Cortex-M4, and Cortex-R4 Cortex-M处理器拥有增强的RTOS特性。这些特性使得RTX的内核移植过程更加自动化和低错误率。 上述两类处理器的主要不同是: ARM7和ARM9处理器使用系统任务进程管理器,去控制所有用户任务进程的切换。任...
阅读全文
摘要:Product Description RTX内核提供了基本的功能,可以创建和注销任务进程。同时RTX内核还提供了一些额外的功能,用于任务进程之间的通信。利用这些通信功能,可以同步任务进程,管理系统公用的资源(例如外设或者内存),在任务进程之间传递消息。 开发者可以设置任务进程的调度优先级。 RTX内核提供了以下的任务进程通信功能: 1,事件标志位(Event flags) 事件标志位是实现任务进...
阅读全文
摘要:mbed SDK代码结构新项目中要用到一颗ARM cortex-M3 CPU,因为业余玩过mbed,很喜欢他的简单和优雅以及丰富的库函数。于是激发了我很大的兴趣,想把mbed sdk移植到我们用的这款ARM CPU上。以后的文章中,我会一步步分享出移植的过程。谈到移植mbed sdk,必然得先熟悉m...
阅读全文

浙公网安备 33010602011771号