- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
建立一个属于自己的AVR的RTOS
建立一个属于自己的AVR的RTOS
建建立立一一个个属属于于自自己己的的AAVVRR的的RRTTOOSS
自从03年以来,对单片机的RTOS的学习和应用的热潮可谓一浪高过一浪.03年,在离
开校园前的,非典的那几个月,在华师的后门那里买了本邵贝贝的《UCOSII》,通读了几次,
没有实验器材,也不了了之。
在21IC上,大家都可以看到杨屹写的关于 UCOSII 在51上的移植,于是掀起了51 上
的RTOS的热潮。
再后来,陈明计先生推出的 small rots,展示了一个用在 51 上的微内核,足以在52 上
进行任务调度。
前段时间,在ouravr上面开有专门关于AVR 的Rtos的专栏,并且不少的兄弟把自己
的作品拿出来,着实开了不 少眼界。这时,我重新回顾了使用单片机的经历,觉得很有必
要,从根本上对单片机的RTOS的知识进行整理,于是,我开始了编写一个用在AVR 单片
机的 RTOS。
当时,我所有的知识和资源有:
Proteus6.7可以用来模拟仿真avr系列的单片机
WinAVR v8 基于GCCAVR 的编译环境,好处在于可以在C 语言中插入asm的
语句
mega8 1K的ram 有8K 的rom,是开发8 位的RTOS的一个理想的器件,并且我对它
也比较熟悉。
写UCOS的JeanJ.Labrosse在他的书上有这样一句话,“渐渐地,我自然会想到,写个
实时内核直有那么难吗?不就是不断地保存,恢复CPU的那些寄存器嘛。”
好了,当这一切准备好后,我们就可以开始我们的Rtosformega8的实验之旅了。
本文列出的例子,全部完整可用。只需要一个文件就可以编译了。我相信,只要适当可
用,最简单的就是最好的,这样可以排除一些不必要的干扰,让大家专注到每一个过程的学
习。
第一篇:函数的运行
在一般的单片机系统中,是以前后台的方式(大循环+中断)来处理数据和作出反应的。
例子如下:
makefile 的设定:运行WinAvr中的Mfile,设定如下
MCU Type: mega8
Optimization level: s
Debug format:AVR-COFF
C/C++ sourcefile: 选译要编译的C 文件
#include avr/io.h
void fun1(void)
{
unsigned char i=0;
while(1)
{
PORTB=i++;
PORTC=0x01(i%8);
}
}
int main(void)
{
fun1();
}
首先,提出一个问题:如果要调用一个函数,真是只能以上面的方式进行吗?
相信学习过C语言的各位会回答,No!我们还有一种方式,就是“用函数指针变量调用
函数”,如果大家都和我一样,当初的教科书是谭浩强先生的《C 程序设计》的话,请找回
书的第9.5节。
例子:用函数指针变量调用函数
#include avr/io.h
void fun1(void)
{
unsigned char i=0;
while(1)
{
PORTB=i++;
PORTC=0x01(i%8);
}
}
void (*pfun)(); //指向函数的指针
int main(void)
{
pfun=fun1; //
(*pfun)(); //运行指针所指向的函数
}
第二种,是“把指向函数的指针变量作函数参数”
#include avr/io.h
void fun1(void)
{
unsigned char i=0;
while(1)
{
PORTB=i++;
PORTC=0x01(i%8);
}
}
void RunFun(void (*pfun)()) //获得了要传递的函数的地址
{
(*pfun)(); //在RunFun 中,运行指针所指向的函数
}
int main(void)
{
RunFun(fun1); //将函数的指针作为变量传递
}
看到上面的两种方式,很多人可
您可能关注的文档
- 年国中教育会宣导简报档.ppt
- 年度午秘研习.ppt
- 年度南投区网中心年度执行成效.ppt
- 年度教育宣导重点.ppt
- 年提前还款速度(PSA)-YiqianLu陆奕骞.ppt
- 年月日成果发表会DVB.ppt
- 年轻白领对宜居现状的满意度较高.ppt
- 年高考化学实验复习策略.ppt
- 库车盆地白至纪沙漠沉积体系的层序地层格架-断块油气田.pdf
- 应对挑战、夯实基础、提升能力、推进发展努力开创审图工作的新局面.ppt
- 2026年温岭市司法局招录备考题库及1套参考答案详解.docx
- 2026年湖北银行武汉财富管理人员社会招聘备考题库及一套完整答案详解.docx
- 2026年湖北宣恩县事业单位公开选聘工作人员备考题库及答案详解参考.docx
- 2026年温州大学商学院临聘工作人员招聘备考题库含答案详解.docx
- 2026年深圳未来双语学校(龙岗)面向全国招聘优秀在编、非编教师备考题库及一套参考答案详解.docx
- 2026年清华大学无锡应用技术研究院招聘备考题库及完整答案详解1套.docx
- 2026年海口市美兰区美舍嘉苑幼儿园招聘教师岗位备考题库及完整答案详解一套.docx
- 2026年湖北省自然资源资产运营有限公司招聘备考题库及参考答案详解1套.docx
- 2026年温州市生产力促进中心有限公司招聘备考题库及答案详解1套.docx
- 2026年淄川区人民检察院公开招聘聘用制书记员5人备考题库有答案详解.docx
原创力文档


文档评论(0)