STM32和STR71X移植uCos-II操作系统比较分析.docxVIP

  • 33
  • 0
  • 约7.71万字
  • 约 11页
  • 2016-12-23 发布于贵州
  • 举报

 STM32和STR71X移植uCos-II操作系统比较分析.docx

STM32和STR71X移植uCos-II操作系统比较分析——ARM7 TDMI和ARMv7-M Cortex-M3 的异同STM32F103ZE,大容量,ARMv7-M,Cortex-M3系列,双堆栈,handler模式和线程模式,中断比较简单,且中断偏移也很容易;STR710FZ2,ARM7TDMI,七种模式,快速中断和外部中断,中断执行流程比较复杂。1 临界区的实现1.1 STM32的实现进入临界区#define OS_ENTER_CRITICAL() {cpu_sr = OS_CPU_SR_Save();}OS_CPU_SR_SaveMRS R0, PRIMASK ; 保存到R0,即返回值cpu_sr就是R0的值CPSID I ;关中断,Cortex-M3特殊指令 BX LR退出临界区#define OS_EXIT_CRITICAL() {OS_CPU_SR_Restore(cpu_sr);}OS_CPU_SR_RestoreMSR PRIMASK, R0 ;传入的参数cpu_sr就是R0的值BX LR程序中如何保护R0的,细看汇编发现,实际上在执行关中断后,将R0保存到了sp+8处,开中断时再取出来,这样才保证了不会被修改。STR r0,[sp,#0x08]tPendTimes = 0;同时,开中断, LDR

文档评论(0)

1亿VIP精品文档

相关文档