- 博客(10)
- 资源 (31)
- 问答 (1)
- 收藏
- 关注
原创 ucos在s3c2410上运行过程整体剖析---两种任务切换的实现方法
以ucos为例,做详细说明。Ucos分为任务级任务切换和中断级任务切换。Ucos整个用户程序和操作系统程序都运行在一个模式下(SVC模式)。所以在不用切换芯片运行模式的情况下就可以做任务级任务切换。任务级进程切换原因是任务本身显示调用进程切换函数。比如新建了一个优先级比较高的任务时就要显示调用任务切换函数。还有就是任务本身代码中调用了OSTimeDly()函数时也会产生任务切换。当然,在切换之前...
2012-03-13 21:41:49 2122
原创 ucos在s3c2410上运行过程整体剖析-- 整体运行环境及工具说明
基础知识里已经基本上讲解了UCOS要生活的家(即硬件平台环境),还有就是为了让高级语言写的程序能变成在硬件平台上直接运行的程序,编译器都干了些什么。还有这个C语言运行的环境问题,也就是从硬件和汇编语言的角度去理解高级语言。 下面我们就从硬件加电到UCOS真正运行起来这样一种思路讲解一个嵌入式实时操作系统的实现原理以及它所包含的精髓。好了,现在就介绍一下我们所有的软硬件设施和用到的所有的工具
2012-03-13 21:40:20 1077
原创 ucos在s3c2410上运行过程整体剖析--创建任务到多任务调度及运行
直接开始说明ucos创建任务时的步骤:1, 初始化任务堆栈2, 初始化任务控制块3, 把刚创建的任务设置为就绪态(即置位就绪表)上面提到的任务堆栈,控制块,就绪表我们前面已经说过了,下面就直接看代码。INT8U OSTaskCreate (void (*task)(void *pd), void *p_arg, OS_STK *ptos, INT8U prio){
2012-03-13 21:38:36 2939 1
原创 ucos在s3c2410上运行过程整体剖析-从main函数到UCOS初始化完毕
下面要讲解的内容基本上都是c语言编写的了,还有一部分代码是用汇编写的。以下我就以这个系统移植的实验源码为例做详细讲解。讲解的方式是根据程序执行的顺序进行,如果感觉有什么难理解的地方,会做一个宏观讲解和分析。好了废话不多说,进入main()函数之后做的事情有:对硬件平台做进一步的初始化操作对ucos操作系统做初始化操作 对硬件的初始化主要包括:初始化时钟总线初始化串口
2012-03-13 21:37:35 4658
原创 ucos在s3c2410上运行过程整体剖析之基础知识-与UCOS运行有关的ARM9芯片知识--续
用户模式(user模式),运行应用的普通模式; 快速中断模式(fiq模式),用于支持数据传输或通道处理; 中断模式(irq模式),用于普通中断处理。超级用户模式(svc模式),操作系统的保护模式异常中断模式(abt模式),输入数据后登入或预取异常中断指令系统模式(sys模式),是操作系统使用的一个有特权的用户模式未定义模式(und模式),执行了未定义指令时进入该模式
2012-03-13 21:30:18 1579
原创 ucos在s3c2410上运行过程整体剖析-从加电到执行main函数
先说明一下在加电之前的这个软硬件情况,这个三星公司根据ARM920T软核生产的这个s3c2410集成了64M的sdram和64M的nandflash存储器。Vivi和UCOS都存储在这个nandflash中,因为nandflash断电后不会丢失信息。这个VIVI是三星公公司为ARM系列芯片书写的bootloader,用于开发阶段,做系统的引导程序。VIVI存放在flash 0x00000000
2012-03-13 21:27:23 4745 1
原创 ucos在s3c2410上运行过程整体剖析之基础知识-与UCOS运行有关的ARM9芯片知识
阅读这些内容前,希望你对计算机有了一点简单的概念,最好学习过计算机组成原理并知道一些最基本的概念。如果你学习过51系列的单片机并且利用51系列的单片机做过一些开发,那看这些内容就很简单了。如果你没这些知识也没关系,以我的学习经历来看,可以给大家一个学习计算机组成原理的建议。你可以先大致学习一下计算机组成原理,学完之后一般会对计算机有一个大体的了解,计算机专业在开设这门课时一般会安排计算机组成原理实
2012-03-08 21:23:34 1259
原创 ucos在s3c2410上运行过程整体剖析之基础知识--关于ADS编译、链接器
我在学习嵌入式操作系统UCOS时,有很大的迷茫之处,在于我不知道我用的工具到底帮我干了些神马工作。下面就说一下我当时的疑问:1:编译器和链接器干了些神马?我现在也还没能力知道它是怎么干的这些工作。以后慢慢来呗。但当时我连它干了神马都不清楚。2:它输入的是源程序,那他输出的是什么?有格式吗?是什么样子那?重重疑问。 ADS编译器的目的是怎么把高级语言编程能在ARM平台上直接运行的
2012-03-08 21:02:27 1137
原创 ucos在s3c2410上运行过程整体剖析之基础知识-c语言和堆栈
我们知道C语言是一种高级语言,所谓高级语言就是要经过翻译才能在具体平台上运行的程序。而编译程序是一种比较繁琐的程序,它要把高级语言编译和链接后,成为能够在具体平台运行的程序。这其中有很多知识是和操作系统和具体硬件平台相关的,如果你想弄清楚编译程序请学习编译原理,有一本书可以参考《linkers_and_loaders》。 我们这里只是说明一下C语言运行的环境以及和栈的关系。让我们从汇编语言
2012-03-08 21:00:02 1933 1
原创 ucos在s3c2410上运行过程整体剖析------前言
我是一名计算机系的学生,总想弄明白我们现在学的计算机到底是怎么工作的。而整个计算机知识是一个庞大的理论体系,且是分为很多层次结构的,简单说有硬件层,软件层。而理解这些不同层次的知识的关键在于理解层次之间的借口,借口理解透彻了,那你就能把各层次的知识融为一体,这些知识也必然可以为你所用了。研究中间件最好的就是操作系统了,但是我们学习的操作系统课程太过于理论化和复杂化,学完了仍然不知所云,可以说大部分
2012-03-08 20:57:14 964
UCOS-III资料和源代码
2018-04-09
eclipse 开发嵌入式软件(编码、调试) 之详细说明
2016-02-23
C语言编程规范(个人规约)
2015-06-18
C语言编程规范
2015-06-18
基于gnu-arm交叉编译链的LPC2220的简单工程模板
2014-08-05
嵌入式linux开发环境搭建(详细篇)
2014-04-27
关于ucosii在arm2410-s上的移植 和移植前的初始化
2011-04-06
linux alsa下实现同时录制、播放pcm???
2015-10-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人