自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

liuchangkk1的博客

天地不仁,以万物为刍狗

  • 博客(6)
  • 收藏
  • 关注

原创 i++和++i的区别

++i:前置版本的递增运算避免了不必要的的工作,它把+1后的值直接送给运算对象。i++:后置版本的递增运算需要先将递增前的值存储下来,然后再进行+1,如果我们后续不需要递增前的值,那么后置版本的操作将是一种浪费。

2017-12-06 16:37:39 216 1

原创 共享资源

实际上,很多人一直存在认识上的误区,以为任务的切换时间越短越好。从实时操作系统RTOS的角度来说这是片面的。实时操作系统首先确保的是任务切换时间的确定性,其次,在这一基础之上才会考虑“越快越好”的问题。通俗的说,一个好的实时操作系统,任务切换时间必须是个常量,在这个基础之上这个常量当然是越小越好了。

2017-10-12 09:47:52 313

原创 中断等待和异常处理优化

中断等待中断等待表示从中断请求开始到中断处理开始执行间的时间。对于Cortex-M处理器,若中断时零等待的,而且系统设计允许取向量和压栈同时执行,则中断等待为12个周期,其中包括寄存器压栈、取向量以及取中断处理指令(这是最理想的情况)。多周期指令执行期间产生中断若在处理器执行多周期指令(如整数除法)时产生中断请求,该指令可能会被丢弃且在中断处理结束后重新执行。这种设计还适用

2017-10-11 15:22:35 1007

原创 异常处理

用C实现异常处理根据AAPCS标准:C函数可以修改R0~R3、R12、LR以及xPSR。若C函数需要使用R4~R11,就需要将这些寄存器保存到栈中,并且在函数结束前将它们恢复。调用者保存寄存器(R0~R3、R12、LR以及xPSR):若在函数调用后还需要使用这些寄存器的值,在进行调用前,调用子程序的代码需要将这些寄存器的内容保存到内存中(如栈)。函数调用后不需要使用寄存器数值则不需要保存。

2017-10-11 09:52:26 247

原创 异常流程

异常进入流程:* 压栈(若处理器处于线程模式且正使用PSP,则压栈就使用PSP,否则使用MSP)。* 取出异常向量(为减少等待时间,这一步可能会和压栈操作并行执行)。* 取出异常指令(在确定异常处理起始地址之后,指令就会被取出)。* 更新NVIC寄存器和内核寄存器(包括挂起状态,活跃状态,xPSR,PC,LR,SP等)。根据压栈时实际使用的栈,在异常处理前,MSP或者PSP的数

2017-10-10 17:30:02 448

原创 复位和复位流程

* 上电复位---复位处理器,调试支持部件,外设等。* 系统复位---复位处理器,外设等。* 处理器复位---只复位处理器。 在系统复位或者处理器复位过程中,Cortex-M处理器中的调试部件不会复位,这样可以保持调试主机和微控制器之间的连接。 对于Cortex-M处理器,向量表中向量地址的最低位应该是1,以表示它们是Thumb指令。例如,复位向量是0x101,而实际从0x100处

2017-10-09 14:29:14 1713

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除