自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (4)
  • 收藏
  • 关注

原创 uC/OS-III之资源管理

1.最常用的独占共享资源和创建临界区的方法有4种:关中断、禁止任务调度、使用信号量、使用互斥型信号量。 一般推荐使用互斥信号量。 在访问数据量极少的时候可以使用关中断的方式。2.关中断/开中断 (1)在使用关中断/开中断时,必须先调用宏CPU_SR_ALLOC()。它的作用是分配存储空间来存储当前CPU的中断状态。 (2)关中断/开中断属于CPU相关的函数,所以它们的定义位于cpu.h中,3

2017-05-26 17:32:42 2959

原创 uC/OS-III之定时器管理

1.所谓定时器本质上是递减计数器,当计数器减到零时可以出发某种动作的执行。这种动作可以通过回调函数(callback funtion,简称回调)来实现。需要注意的是,一定要避免在回调函数中使用阻塞调用。 注:定时器在一些协议栈的实现中很有用,也可以用来定期轮训IO设备。2.定时器任务的频率通过宏定义OS_CFG_TMR_TASK_RATE_HZ来实现,单位是Hz。 该宏定义位于文件os_cfg_

2017-05-26 14:59:29 1027 1

原创 uC/OS-III之时间管理

1.uC/OS-III的时间管理函数的主要工作是改变当前任务的状态,把任务添加到时钟节拍轮中,同时把任务从任务就绪表中删除,最后执行调度程序。2.OSTimeDly()函数 OSTimeDly()函数的源代码位于os_time.c文件,79行 - 138行void OSTimeDly (OS_TICK dly, // 延时长度 OS_OPT

2017-05-25 17:13:02 999

原创 uC/OS-III之时钟节拍列表

1.时钟节拍列表由一个时钟节拍轮(,见os_cfg_app.c中的OSCfg_TickWheel[])和一个计数器OSTickCtr构成。2.时钟节拍轮是一个数组,其中数组的元素的类型为OS_TICK_SPOKE,它的大小由OS_CFG_TICK_WHEEL_SIZE设定。 建议OS_CFG_TICK_WHEEL_SIZE的大小为任务数目的1/4左右,不要把它的值与时钟节拍的频率成倍数关系,最好为

2017-05-25 16:12:44 1466

原创 uC/OS-III之学习总结

1.uC/OS-III系统的三大表:任务就绪表、时钟节拍轮、任务挂起表。任务控制块OS_TCB就是在这三张表中轮转。

2017-05-25 15:24:20 466

原创 uC/OS-III之临界段代码学习总结

1.临界段代码,也叫临界区,是指那些必须完整连续运行,不可被打断的代码段。在uC/OS-III中存在大量的临界段代码。2.中断处理程序和任务都会访问的临界段代码,需要使用关中断的方法加以保护;仅由任务访问的临界段代码,可以通过给调度器上锁的方法来保护。3.在uC/OS-III中,使用宏OS_CRITICAL_ENTER()进入临界区;使用宏OS_CRITICAL_EXIT()和OS_CRITICAL

2017-05-25 11:55:14 3215

原创 uC/OS-III之中断管理总结

1.uC/OS-III对从中断发布消息或信号的处理有两种模式:直接发布和延迟发布。 在文件os_cfg.h中,将OS_CFG_ISR_POST_DEFERRED_EN设置成0,使用直接发布模式;设置成1,则使用延迟发布模式。2.直接发布模式使用关闭中断的方式来保护临界段代码。3.延时发布模式通过给调度器上锁的方式来保护临界段代码。4.延时发布模式与直接发布模式相比,主要是减少了关闭中断的时间,因而

2017-05-25 09:23:34 1289

原创 uC/OS-III之任务切换学习总结

1.当uC/OS-III需要切换到另外一个任务时,它将保存当前任务的现场到当前任务的堆栈中,主要是CPU相关的寄存器,然后恢复新任务的现场并执行新任务。这个过程叫做任务切换2.由任务调度可知,任务级调度OSSched()中调用OS_TASK_SW()实现任务的切换,而中断级调度OSIntExit()中调用OSIntCtxSw()实现任务的切换。 在os_cpu.h文件中有如下定义// 0xE000

2017-05-24 17:38:19 852

原创 uC/OS-III之任务调度总结

1.任务调度 任务调度,简单的理解就是确定下一个要执行的任务。uC/OS-III中的任务调度通过任务调度器实现。uC/OS-III是一个可剥夺型的、基于优先级的内核。2.调度点 任务调度,说白了其实就是在某些时刻进行任务的调度,这些调度的时刻称为调度点。 在uC/OS-III中的任务调度点有以下几种: (1)任务释放信号量或给另一个任务或向另一个任务发消息 (2)任务调用延时函数OSTim

2017-05-24 11:23:44 1695

原创 uC/OS-III之任务就绪表学习总结

1.任务就绪表包含两部分:一个就绪优先级位映射表OSPrioTbl[],用来标明哪个优先级下有任务就绪;一个就绪任务列表OSRdyList[],其中包含指向各个就绪任务的指针。2.就绪优先级位映射表OSPrioTbl[] // 就绪优先级位映射表的大小#define OS_PRIO_TBL_SIZE

2017-05-23 16:43:59 1108

原创 uC/OS-III之系统内部任务

1.uC/OS-III系统内部有提供了5个任务:空闲任务、时钟节拍任务、统计任务、中断服务管理任务和定时器任务。其中空闲任务和时钟节拍任务是必须创建的,而统计任务、定时器任务和中断服务管理任务是可选的。2.空闲任务(OS_IdleTask()、os_core.c) 空闲任务是系统必须创建的。当其他所有的任务都未就绪时,就需要运行它。 (1)优先级–它的优先级比较特殊,总是设置为OS_CFG_PR

2017-05-23 14:40:29 1379

原创 uC/OS-III的任务管理

uC/OS-III的任务管理欢迎进入linuxweiyh的博客。。。1.多任务管理就是在多个任务间调度和切换CPU使用权的过程。2.任务的类型有两种:运行至完成型和无限循环型。 注:嵌入式系统一般使用的是无限循环类型的任务。在无限循环类型的任务中必须调用某个uC/OS-III服务函数,使该任务进入等待某个事件的状态。3.任务的创建参考另一篇文章《uC/OS-III任务创建函数》4.有关任务优先级的

2017-05-18 18:49:31 844

原创 uC/OS-III任务创建函数OSTaskCreate()

uC/OS-III任务创建函数OSTaskCreate()1.OSTaskCreate()函数原型void TaskCreate(OS_TCB *p_tcb, // 任务控制OS_TCB的地址CPU_CHAR *p_name, // 任务的名字OS_TASK_PTR p_task, // 任务代码的起始地址void *p_arg, // 任务第一次运行时接收到

2017-05-17 19:16:37 4552

原创 编程知识总结

编程知识总结欢迎进入linuxweiyh的博客。。。声明:该博文会不定期更新1.当不清楚一个循环的次数时,使用while循环;当知道循环的次数时,就会使用for循环

2017-05-17 18:43:23 295 1

uboot顶层config.mk分析

config.mk主要做的工作: 1.设置obj和src,并清空各种标志(26 ~ 45行) 2.与ppc相关的交叉编译工具的配置(54 ~ 70行,不重要,可以不看) 3.shell相关的一些配置、主机编译器相关的一些配置(74 ~ 84行) 4.配置交叉编译工具链(91 ~ 107行) 5.加载开发板相关的配置选项(111 ~ 130行) 6.编译选项相关的配置(135 ~ 141行,不重要,可以不看) 7.指定链接脚本(142 ~ 149行) 8.获取链接地址(154 ~ 158行) 9.设置头文件搜索路径(160 ~ 166行) 10.使用起始链接地址(198 ~ 201行) 11.BFD库相关的配置(213 ~ 228行,不重要,可以不看) 12.设置自动推导规则(239 ~ 256行)

2018-09-04

uboot顶层Makefile分析

uboot顶层Makefile分析,一行指令对应一行注释,看起来很方便

2018-08-31

SQLiteStudio

查看SQLite数据库的工具

2017-07-27

M72-D硬件手册及AT指令集

M72-D硬件手册及AT指令集

2016-04-26

空空如也

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

TA关注的人

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