历史上的今天
返回首页

历史上的今天

今天是:2024年12月11日(星期三)

正在发生

2019年12月11日 | OSStartHighRdy()一去不复返【worldsing笔记】

2019-12-11 来源:eefocus

有关于uCos的启动过程讲解有很多文章,这里主要记录已下OSStartHighRdy()在stm32下是怎么写和运行的:

 

stm32上电

 

运行SystemInit(): 配置时钟,这个不要也可以,不要就是8MHz时钟

 

运行main() : 调用OSInit(), OSTaskCreate()一个任务,OSSart()

OSInit():至少做3件事1、初始化零散的uCos全变量;2、把任务控制块、事件控制块链表化;3、创建已空闲任务IDLE(系统的);

OSTaskCreate():建立一个属于用户的任务(非系统的),这个是必须有的。


OSSart():上面几步其实都是填充数据,建立任务也是填充数据(写入任务的函数指针),OSSart()功能是找一个优先级最高填到变量里。其实他幕后是执行着OSStartHighRdy();

OSStartHighRdy():这个功能很明确:配置系统软件中断优先级、PSP栈指针清零、OSRunning = TRUE、触发软件中断、使能全局中断 目的:触发软件中断进行一次调度这个模块就运行一次而且不返回。

image

 

进入软件中断服务程序:OSCtxSw() 也是uCos移植必改的模块;


1、把正在运行的任务的cpu寄存器及变量存到PSP指向的内存(任务控制块OSTCBStkPrt)。

2、把PSP栈指针也存进去;

3、调用Hook;

4、把新的任务(最高优先级)的任务控制块指针OSTCBHighRdy给当前B任务控制块指针(将要运行)OSTCBCur

5、当前B任务控制块指针的栈指针OSTCBStkPrt取出CPU寄存器值

推荐阅读

史海拾趣

CQR SECURITY公司的发展小趣事

随着电子行业的快速发展,网络安全问题日益突出。CQR SECURITY公司敏锐地捕捉到了这一市场机遇,迅速调整战略方向,专注于提供针对电子设备的安全保护服务。公司研发了一系列高效的安全产品,有效应对了各类网络攻击和数据泄露事件。在不断应对行业挑战的过程中,CQR逐渐积累了丰富的安全实践经验,并赢得了客户的信赖和认可。

Advanced Interconnections Corp公司的发展小趣事

随着市场竞争的加剧,AIC公司意识到品质是赢得客户信赖的关键。于是,公司加大了对生产过程的管控力度,从原材料采购到生产流程,再到产品检验,都实行了严格的质量控制。同时,AIC公司还建立了完善的售后服务体系,及时响应客户需求,解决产品使用过程中出现的问题。这些举措使AIC公司的产品赢得了客户的广泛好评,进一步巩固了市场地位。

芯源半导体(CW)公司的发展小趣事

作为一家有社会责任感的企业,芯源半导体(CW)公司始终关注环境保护和可持续发展。公司积极推广绿色生产和循环经济理念,采用环保材料和节能技术,减少生产过程中的污染和浪费。同时,公司还积极参与社会公益事业,为当地社区和弱势群体提供帮助和支持。这些举措使芯源半导体(CW)公司赢得了社会的广泛赞誉和尊重。

Block USA Inc.公司的发展小趣事

在支付与金融服务领域取得成功后,Block USA Inc.还尝试了跨界合作,推出了音乐软件TIDAL。这一举措旨在通过提供高品质的音乐体验,吸引更多年轻用户群体,并进一步扩大Block的品牌影响力。虽然音乐市场竞争激烈,但TIDAL凭借其独特的音乐资源和用户体验,逐渐在市场中占据了一席之地。

安美通(APPCON)公司的发展小趣事

安美通非常重视企业文化建设和团队建设。公司倡导创新、务实、合作的企业文化,为员工提供了一个宽松、自由、充满激情的工作环境。同时,公司还积极开展各类培训活动,提升员工的专业素养和综合能力。这些措施使得安美通的团队更加团结、高效,为公司的持续发展提供了有力的保障。

这五个故事虽然只是安美通发展过程中的一部分,但它们充分展示了安美通在电子行业中不断努力、创新、拓展的精神和成果。未来,安美通将继续秉承这种精神,不断推动公司的发展和进步。

Churod Electronics Co Ltd公司的发展小趣事

随着国内市场的饱和,中汇瑞德开始将目光投向海外市场。为了更好地服务全球客户,公司在美国设立了子公司,并在全球范围内建立了销售网络。同时,公司还积极参与国际展会和交流活动,与国际同行建立了广泛的合作关系。这些举措不仅拓展了公司的业务范围,也提升了公司的国际影响力。

问答坊 | AI 解惑

如何在火线零线间点亮发光二级管?

火线、零线两之间,我用一只红色发光二极管串接一个100K电阻并在火线零线之间后,发光二极管正常工作; 可是我用一蓝色发光二极管串接一个100K电阻并在火线零线之间后,为什么就不能正常工作了呢? 着急啊?请教各位大侠,用蓝灯如何接才能正常、 ...…

查看全部问答>

全球最古怪的“双面”车

据金鹰网报道 现年39岁的Vasyl Lazarenko是一位来自乌克兰西部的工匠。由于女友非常喜欢坐敞篷车去兜风,而他自己又觉得硬顶车篷很实用,于是突发奇想,决定自己打造一款世界上独一无二的“双面车”。 这辆车的左边是现代轿车的造型,而右边则 ...…

查看全部问答>

vxworks下跨网段无法ping通???

老弟最近在开发过程遇到一个问题,就是开发出的vxworks程序 1、跨网段无法ping通,报文也过不去。 现象与现状:    同网段可以ping通,报文也可以过去。    目前的所跨的两个采用B类地址,从第二位开始有区别区分子网。分 ...…

查看全部问答>

单片机发声参数如何计算

我在学习单片机输出到蜂鸣器的时候有这样一段程序 bb bit p2.4     ;定义bb在下面程序中代表p2.4,连接蜂鸣器     star: clr bb          ;使v1 9015导通      &n ...…

查看全部问答>

请做过TCP/IP方面的大侠指教一下.

想用ARM7+RTL8019做一个网络方面的东西.功能是将这个产品接入一个局域网中通过一个服务器件(192.168.1.3)发送数据(没分钟一个包大概几百字节)到另一个服务器(192.168.2.8)所在的局域网中的某一个产品. 见下图: A(ARM+8019) 192.168.1.3 192.168. ...…

查看全部问答>

关于2440 WINCE5.0 BSP中EBOOT的一点疑问,谢谢解疑

我在三星官方下了个SMDK2440A WINCE5.0的BSP,弄NBOOT+EBOOT启动的时候发现个问题: 在EBOOT中的main.c文件: void main(void) {             // Clear LEDs.     //        ...…

查看全部问答>

嵌入式操作系统裁剪是什么意思?

不裁剪不行吗? 我没有用到的功能我不用,比如任务的调度什么的,也不会影响我最终生成的可执行文件的大小啊。 …

查看全部问答>

端口没有反应

小弟近日用如下程序测试我的MSP430F149做的一个板子,本来应该输出一个方波,但是没有反应。请各位高手帮看看! #include <msp430x14x.h> void main( void ) { WDTCTL = WDTPW+WDTHOLD; P4DIR |= 0x02; for(;;) { ...…

查看全部问答>

【 低功耗】利用 Xilinx 功耗估计器分七步精确分析最坏情况下的功耗使用

利用 Xilinx 功耗估计器分七步精确分析最坏情况下的功耗使用 [ 本帖最后由 hangsky 于 2011-11-8 13:26 编辑 ]…

查看全部问答>

《那年,一步一步学linux c》全系列

本系列全部文章已整理成电子文档,下载地址: https://download.eeworld.com.cn/detail/tiankai001/13375 《那年,一步一步学linux c》全系列(目录索引) 几点说明:该系列文章中所用结构数据代码均来自linux2.6.39.文章中若有不对或某些功 ...…

查看全部问答>