系统数据:
1)当前的PID
2)所有的进程总数PAMOUNT
//多任务系统的初始化
1. 设置MSP值
2. 设置临时的PSP值(因为这段实际上只在启动定时器之前有效)
3. 设置CONTROL[1]=1(设置双堆栈),马上会自动切换到PSP上
4. 设置PID=0,设置PAMOUNT=0
5. 设置为进程信息表起始地址到PLIST(注意进程信息表是向上生长的)
6. 设置为进程堆栈分配的起始地址到PSTACK(堆栈是向下生长的)
//调用AddTask添加任务
1. 写入配置信息到任务表中(任务起始地址,堆栈地址(首次进行分配)xPSR等等)
a) 至于输入参数,就存放在任务的堆栈中
//启动任务切换
1. 设置SysTick定时器的详细配置(定时间,开中断)
2. 启动定时器
//进程的切换过程
1. 当中断触发时,硬件会按照下表自动进行寄存器的入栈(如果当响应异常时,当前的代码正在使用PSP,则压入PSP,即使用线程堆栈;否则压入MSP,使用主堆栈。一旦进入了服务例程,就将一直使用主堆栈),通常Systick中断都是在PSP的情况下发生的,所以数据压入PSP中。
2. 入栈完毕,将堆栈切换到MSP,开始执行SysTick服务程序:
a) 将当前的堆栈切换为MSP
b) 取得进程堆栈指针,将堆栈指针备份到PID备份区域
c) 将R4到R11存储到PID对应的程序堆栈区域
d) 开始执行程序计算下一个PID=PID+1>PAMOUNT?1: PID+1;
e) 读取下一个PID进程堆栈指针,并将堆栈中的备份恢复到到R4到R11寄存器中
f) 将下一个进程PID的堆栈地址(弹出r4-r11后的地址)写到psp中
g) 进行中断返回,同时这样会触发中断返回的硬件过程,硬件会将堆栈切换为PSP并将PSP的内容恢复到相应寄存器中
3. 出栈完毕,硬件自动清除NVIC寄存器
4. 现场恢复完毕,继续执行任务
//任务的退出
1. 在写入进程信息的时候,已经把lr寄存器的值设置成为了ExitTask函数的地址,所以,当函数退出之后,会自动执行收尾。
补充资料:
1. 关于堆栈
a) 堆栈是向下生长的
b) 堆栈指针总是指向最后被压入堆栈的数据
c) 只有在CONTROL[1]=1时,才会使用双堆栈
d) 因为 C M 3 使用的是向下生长的满栈,所以 MSP 的初始值必须是堆栈内存的末地址加1 。
举例来说,如果你的堆栈区域在 0x20007C00 ‐ 0x20007FFF 之间,那么 MSP 的初始值就必须是0 x 20008000。
e) 在handler模式下CONTROL[1]不可以写入1,但是可以读取PSP的值
f) 堆栈的地址指针会和4对齐,例如:向sp写入0x20006001或者0x20006002或者0x20006003时,会自动变成0x20006000,而写入0x20006004就是直接写入0x20006004
g) 堆栈总是指向最后一个元素的,当写入四个字节的字时,会先指针减去4,再进行入栈。当堆栈指针为sp=0x20006004时,写入一个字 0x12345678时,会在0x20006000字节、0x20006001字节、0x20006002字节、0x20006003字节分别写入0x78、0x56、0x34、0x12。要想执行类似的操作可以使用存储指令(例如str)将数据存到0x20006000单元,会达到相同的效果
上一篇:STM32学习之:定时器 软件计时
下一篇:STM32实验1:定时器中断同时产生两路不同频率的信号
推荐阅读
史海拾趣
二战后,随着全球经济的复苏和电气产品的爆炸性需求,Hammond迎来了前所未有的发展机遇。在1950年代和1960年代,Hammond积极扩展产品线,成为变压器、机架、机柜以及电气和电子行业外壳的领先供应商。同时,公司还进行了多次战略性收购,进一步巩固了其在北美电气OEM市场的地位,成为磁性材料的主要供应商之一。
作为一家有社会责任感的企业,弘凯光电始终致力于环保和可持续发展。公司秉承“质量第一”的方针,不仅注重产品的品质和性能,还积极推广环保理念,致力于生产高质量、环保的LED产品。此外,公司还积极参与社会公益活动,回馈社会,为建设环保节能型社会贡献自己的力量。
以上五个故事,基于弘凯光电在电子行业中的发展历程和公开信息,尽量以事实为依据,避免了主观评价。这些故事展示了弘凯光电在技术创新、市场拓展、社会责任等方面的努力和成就,也反映了公司在电子行业中的崛起和影响力。
弘凯光电一直致力于技术创新和产品升级。公司拥有一支高效、创新的技术团队,通过对产品技术的深入研究和持续创新,不断推出具有竞争力的新产品。例如,公司的iCLed系列产品,凭借其独特的设计和卓越的性能,在智能座舱设计领域获得了广泛应用。这种对技术创新的不断追求,使得弘凯光电在电子行业中始终保持领先地位。
2010年,电子支付与身份识别技术领域的领军企业金雅拓,全资收购了CINTERION。这一资本动作不仅为CINTERION带来了更多的资金支持,更使其在金雅拓的物联网事业部中获得了更广阔的发展空间。收购完成后,CINTERION继续保持其技术领先地位,并在金雅拓的推动下,进一步拓宽了产品线和应用领域。
作为一家在电子行业有影响力的企业,Econais深知自己的社会责任。公司积极参与各种公益活动,并致力于推动可持续发展。Econais的产品在设计时就考虑到了环保因素,采用低功耗技术减少能源消耗,并选用环保材料降低对环境的影响。此外,Econais还通过技术创新帮助其他企业实现节能减排的目标。
以上五个故事概述了Econais在电子行业发展中的一些重要里程碑和关键事件。这些故事不仅展示了Econais的技术实力和市场竞争力,也体现了公司的社会责任感和可持续发展的理念。
Amerace Electronic Components公司自成立以来,一直致力于电子元件的技术创新。在早期的发展阶段,公司投入大量资源进行研发,成功推出了一系列具有创新性的电子元件产品,如高精度电阻器和电容器。这些产品在市场上获得了广泛的认可,为公司赢得了良好的声誉。随着技术的不断进步,Amerace持续引领行业创新,为电子行业带来了更多高性能、高可靠性的元件产品。
新型彩电很多机型已经采用IIC总线控制方式。IC总线受干扰,就会产生许多无法用常规分析硬件损坏的故障解释。所以,如遇到综合性的故障问题,或无法理解的问题,可试着用IC总线受干扰的方式来进行分析。 1. 电源输出的直流电压滤波不良,散射的 ...… 查看全部问答∨ |
|
为了促进大家对模拟电路的学习和提升,模拟板块准备开始一系列的DIY活动,以上的的5个题目供大家来选择,可以选择多个,也可以选择一个,根据大家的投票会决定先开始某一个的DIY,当然如果大家觉得有必要,我们也可以一个一个得来DIY。大家还有什么 ...… 查看全部问答∨ |
本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 据外电报道,美国亚马逊公司近日宣布,该公司6月适用于电子书阅读器KINDLE的电子书销量达到了纸质图书的1.8倍。 亚马逊没有透露具体销量。4~6月的电子图书销量为纸质图书的1.4倍。今年上半年 ...… 查看全部问答∨ |
vmware上运行vxworks,按网上说的做,>make CPU="PENTIUM" tool="gnu" ln97xe 提示make 不是内部或外部命令 而在path里,已经添加了make的位置了啊:\\Tornado\\target\\config\\82559? 把makefile ln97xEnd.c拷贝到\\Tornado\\target\\config\\82559文件夹下,make,又提示vxrm不是。。。… 查看全部问答∨ |
|
microchip提供的ZIGBEE2006协议不完全,大家不要上当! microchip提供的ZIGBEE2006协议不完全,大家不要上当!我现在好麻烦啊,不行只能该用TI的了。当时因为他们提供源码,没想到后面的麻烦不小。… 查看全部问答∨ |
|
向老师请教: 在2407中实现卷积的计算,用到了乘法器,指令是MAC。 其中相乘的两个数据一个是小数0.4830,一个是整数34 在汇编语言编写时,我将小数写成Q8格式:4830*256/10000;整数写成0022h。不理解的是,两个数是怎么相乘的?是不是DSP会将0 ...… 查看全部问答∨ |