嵌入式之路
文章平均质量分 69
zhhg_1220
开通此空间用来记录自己的专业成长历程
展开
-
UCOS-II移植ARM的读书笔记(12.13)
一点一点来,什么不会就学什么,都不会就都学。。。没有问题只要你肯努力。。。。。。__OSStartHighRdy MSR CPSR_c, #(NoInt | SYS32Mode) ;MSR:在ARM中只有MSR能够直接设置状态寄存器CPSR或SPSR,可以是立即数或者源寄存器,NoInt是禁止中断,SYS32Mode是系统模式原创 2006-12-13 23:39:00 · 1991 阅读 · 1 评论 -
串口中间件实验详解
其实关于串口中间件的这个实验本身的应用程序部分很简单,我研究的目的主要是搞清楚整个运行过程以及所谓的驱动程序部分的编写技巧之类.....先看main函数 OSInit(); //初始化操作系统,该串口实验是在UCOS操作系统上的多任务程序 OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE原创 2007-01-04 00:36:00 · 1736 阅读 · 0 评论 -
UCOS-II移植ARM的读书笔记(12.25)续
关于中断和时钟节拍,UCOS-II对于ARM7通用的中断服务程序的汇编与c函数接口如下:MACRO和MEND伪指令用于宏定义,MACRO标识宏定义的开始,MEND标识宏定义的结束。定义之后在程序中就可以通过宏指令多次调用该段代码MACRO$IRQ_Label HANDLER $IRQ_Exception_Function EXPORT $IRQ_Label原创 2006-12-25 21:32:00 · 1721 阅读 · 0 评论 -
UCOS-II移植ARM的读书笔记(12.25)
__OSStartHighRdy MSR CPSR_c, #(NoInt | SYS32Mode) ;调整到管理模式 ;告诉uC/OS-II自身已经运行 LDR R4, =OSRunning MOV R5, #1 ST原创 2006-12-25 16:15:00 · 1559 阅读 · 0 评论 -
UCOS-II移植ARM的读书笔记(12.20)续
之前刚开始的时候是直接看移植代码,后来看到后面实在看不下去了,转过头回去看了一个星期的内核结构,以前也看过一遍内核结构,但是有点晕晕的,现在重新看了一次清楚多了,相信回过头来看移植部分也应该更清楚了。现在先来掌握一下关于软件中断swi的内容,这是我比较发晕的源泉 软中断:中断不返回形式:void _swi(swi_num) swi_name(arguments)返回一个原创 2006-12-21 01:35:00 · 2928 阅读 · 0 评论 -
UCOS-II移植ARM的读书笔记(12.20)
郁闷,昨天写的东西又忘记存起来了。。。今天又要返工简单回顾一下昨天看的8 给调度器上锁和开锁 上锁函数OSSchedlock,调用该函数可以禁止任务调度,保持该任务对CPU的使用权,不过中断还是可以识别,中断服务也能得到,因为中断是开着的,中断和调度是两个意思。其中变量OSLockNesting跟踪OSSchedLock函数被调用的次数所以允许嵌套函数。如果OSLockNes原创 2006-12-20 22:31:00 · 1604 阅读 · 0 评论 -
UCOS-II移植ARM的读书笔记(12.16)
范例二:void main (void){ OS_STK *ptos; OS_STK *pbos; INT32U size; PC_DispClrScr(DISP_FGND_WHITE); /* Clear the screen */ OSInit();原创 2006-12-16 23:38:00 · 2048 阅读 · 0 评论 -
UCOS-II移植ARM的读书笔记(12.17)续
内核结构1临界段,OS_ENTER_CRITICAL和OS_EXIT_CRITICAL 开关中断的实现方法分三种: 1)直接用处理器指令 2)在堆栈中保存中断的开关状态,然后再关中断。 3)通过编译器提供的c函数来保存处理器状态字的值。 2任务 3任务状态 睡眠态:在ROM或RAM中,交给UCOS要调用下面两个函数之一:OSTaskCreate原创 2006-12-18 00:00:00 · 2033 阅读 · 1 评论 -
UCOS-II移植ARM的读书笔记(12.16)续
范例三:在该范例中首先定义了一个用户任务数据结构,在这个结构中有该范例所需要的数据参数,和每个任务相关的,因此定了一个该数据结构类型的变量数组,分配给7个自建的任务另外使用了消息队列的通讯方式,可以容纳多则消息。建立消息队列需要两个元素即OS_EVENT的数据结构和一串指针。void main (void){ PC_DispClrScr(DISP_BGND_BLACK);原创 2006-12-17 00:31:00 · 1509 阅读 · 0 评论 -
UCOS-II移植ARM的读书笔记(12.15)
移植的工作难以分析下去,先来几个UCOS的使用范例看看吧第一个范例:void main (void){ PC_DispClrScr(DISP_FGND_WHITE + DISP_BGND_BLACK); /* PC的清屏函数,PC_DispClrScr(INT8U color),这里调用时是前景色为白色,背景色为黑色*/ OSInit();原创 2006-12-16 21:19:00 · 2113 阅读 · 0 评论 -
UCOS-II移植ARM的读书笔记(12.12)
原创 2006-12-13 01:03:00 · 1957 阅读 · 1 评论 -
UCOS-II移植ARM的读书笔记(补12.11)
真是很郁闷,昨天晚上边看移植代码边记下来的笔记不知道怎么回事在保存的时候竟然不见了。。。5555。。。一个晚上工作的结果啊,关键是我是第一次也是正式开始移植的学习之路啊。。。真是够倒霉的。。。。今天在工作之前先把昨天的笔记重新回顾一下,其实后来想想也许是件好事,可以让我今天在不借助其他的帮助的情况下自己看代码自己跟自己讲一遍,其实很多看起来是倒霉看起来是灰心的事情把我们的观点换一下那么就是一件好事原创 2006-12-12 16:22:00 · 1910 阅读 · 0 评论 -
UCOS-II移植ARM的读书笔记(12.17)
实时系统概念1 前后台系统 不复杂的小系统通常选择前后台系统,应用程序是一个无限循环。在循环中调用相应的函数完成相应的操作,这部分可以看成后台行为。中断服务程序处理异步事件,可以看成前台行为。 2 代码的临界段 需要在前后关开中断的代码,不能被打断的代码 3 资源 输入输出设备,各种变量,结构,数组 4 共享资源 可以被多个任务使用的原创 2006-12-17 16:51:00 · 1501 阅读 · 0 评论