cortex-m0系统控制块(scb)是内核外设的主要模块之一,提供系统控制以及系统执行信息,包括配置,控制,上报系统异常等。
为了提高软件效率,cmsis简化了scb寄存器表示,在cmsis中系统控制寄存器结构体:
typedef struct { __im uint32_t cpuid; /*!< offset: 0x000 (r/ ) cpuid base register */ __iom uint32_t icsr; /*!< offset: 0x004 (r/w) interrupt control and state register */ uint32_t reserved0; __iom uint32_t aircr; /*!< offset: 0x00c (r/w) application interrupt and reset control register */ __iom uint32_t scr; /*!< offset: 0x010 (r/w) system control register */ __iom uint32_t ccr; /*!< offset:0x014 (r/w) configuration control register */ uint32_t reserved1; __iom uint32_t shp[2u];/*!< offset: 0x01c (r/w) system handlers priority registers. [0] is reserved */ __iom uint32_t shcsr; /*!cpuid ” 获取处理器id。读取mm32f0130的cpuid、uid和dev_id如下所示:
cpuid (0x410cc200)解析处理器信息:
二、icsr (interrupt control and state register)
提供:
nmi异常的设置挂起位
为pendsv和systick异常设置挂起和清除挂起位
表示:
正在处理的异常的异常编号
是否有被抢占的活动异常
最高优先级未决异常的异常编号
是否有任何中断待处理
address: 0xe000ed04reset value: 0x0000 0000
icsr中的某些控制位仅供调试使用,大多数情况下,应用程序只会用icsr来控制或者检查系统异常挂起状态。
pendsv(可挂起的系统调用)异常对 os 操作非常重要,其优先级可以通过编程设置。可以通过将中断控制和壮态寄存器 icsr 的 bit28挂起位置1来触发pendsv中断。与svc异常不同,它是不精确的,因此它的挂起状态可在更高优先级异常处理内设置,且会在高优先级处理完成后执行。
利用该特性,若将pendsv设置为最低的异常优先级,可以让pendsv异常处理在所有其他中断处理完成后执行,这对于上下文切换非常有用,也是各种os设计中的关键。在具有嵌入式os的典型系统中,处理时间被划分为了多个时间片。
通过向中断控制和状态寄存器 icsr 的 bit28 写入1挂起pendsv来启动pendsv中断,如果中断启用且有编写 pendsv 异常服务函数的话,则内核会响应 pendsv 异常,去执行pendsv 异常服务函数,这样就可以在pendsv中断服务函数中进行任务切换了。
三、aircr (application interrupt and reset control register)
aircr为数据访问和系统的复位控制提供字节序状态。
要写入该寄存器,您必须写入0x05fa vectkey 字段,否则处理器将忽略写入。
address: 0xe000ed0creset value: 0xfa05 0000
任何对该寄存器的写操作,都必须将0x05fa写入到aircr[30:16],否则写操作将无效,若需要半字读取,需要写入0xfa05。
应用程序中系统执行软复位函数:
__static_inline void nvic_systemreset(void){ __dsb(); //确保所有未完成的内存访问包括缓冲写入在重置之前完成 scb->aircr = ((0x5faul << scb_aircr_vectkey_pos) | scb_aircr_sysresetreq_msk); __dsb(); //确保完成内存访问 for(;;) /* wait until reset */ { __nop(); }}
四、scr (system control register)
scr 控制进入和退出低功耗状态的特性。
address: 0xe000ed10reset value: 0x0000 0000
555定时器内部框图及电路工作原理
盛大创始人陈天桥:用技术来解决技术造成的问题,以及他不担心机器人崛起的原因
CMX618结构图及其应用
盘点那些“世界之最”的智能手表
把VR视频转换成普通视频的步骤
Cortex-M0系统控制块(SCB)介绍
甲烷传感器工作原理及功能特点
解析苹果自研芯片背后的秘密
比特币OTC场外交易市场具有哪些特点?
BOE(京东方)上榜科睿唯安2022年全球百强创新机构榜单
极客桥无人机照亮武汉火神山医院施工现场的夜空
Genesys和谷歌展示新AI客户体验
特斯拉计划月底前清空Model S/X库存
都说是小米6,我怎么看怎么像小米6mix
DC 12V 2A24W电源设计
Vishay推出ESD级别高达2kV的车用精密薄膜电阻
解析功率信号源的特点及工作原理
北汽蓝谷12月汽车产销量飙升,2023年累计增长19.95%
华为鸿蒙系统手机上市了吗 鸿蒙OS已达到安卓70-80%水平
舵机控制原理是什么_舵机的控制方法