AVRX学习笔记: 建立AVRX库文件
AVRX是WINAVR编写的,免费的RTOS。由于使用汇编编写,所以操作系统代码很小,只有500~700字节。AVRX提供了库文件,所以实际应用中,不一定会用到所有功能,代码会更小些。AVRX包含了34个API接口,主要用于以下六大模块的中:1. Tasking 任务
2. Semaphores 旗语
3. Timer Management 时间管理
4. Message Queues 信息排列
5. Single Step Debugging support 单步Debuging支持
详细信息可以查阅:
http://www.barello.net/avrx/index.htm 1. 以下以Atmega103为例,介绍如何生成Atmega103的AVRX库文件。
注:
上传一个从网络上搜索来的最新的AVRX的文件;
CPU使用Atmega103L,(因为刚好手头有一块ATMGRA103的板子)。
步骤:
1.
下载以下文件并且解压缩到c:\AVRX\下:
点击此处下载armok0168286.rar
2.
修改
1)"AVRX\avrx"目录下的"makefile"中:
ABSPATH=h:/AVRX/avrx";
2)
ICCMCU = m103
AAVRMCU = 3
GCCMCU = atmega103
AVRXMCU = __AT90Mega103__
3.
先运行make gcc,即可生成AVRX的库文件。
http://cache.amobbs.com/bbs_upload782111/files_3/armok0164891.GIF AVR的RTOS的选择:
AVR的RTOS很多,网络上比较常见的包含:
AvrX
http://www.barello.net/avrx/
AvrX是一个实时多任务的内核,支持多任务。用汇编编写
EtherNut - Nut/OS
http://www.ethernut.de/en/
FreeRTOS :
http://www.freertos.org/
FreeRTOS是一个开源的小型RTOS,用C语言编写
Salvo:
http://www.pumpkininc.com/
COMATOS:
http://www.nbb.cornell.edu/neurobio/land/STUDENTPROJ/2000to2001/greenblattCOMATOS/index.html
TinyOS:
http://webs.cs.berkeley.edu/tos/
Contiki:
http://www.sics.se/~adam/contiki/
XMK - eXtreme Minimal Kernel
http://sourceforge.net/projects/xmk
pico OS
http://picoos.sourceforge.net/
uSmartX
http://usmartx.sourceforge.net/
从任务来分,又分为强占式(Pre-emptive)和合作式(Cooperative)的内核。它们各自有不同的优缺点。 AVRX例子的调试:
AVRX中自带了好几个例子。但是,在用WINAVR最新版本的调试过程中,总是不能顺利编译成功。经过测试,发现主要是由于以下的原因造成的:
1. 新版的WINAVR不支持例如outp,intp等,因此把它们加入到avrx.h中。
例如: #ifndef outp
#define outp(A,B) B = (A)
#endif
2. 例子中,有以下一句
#define _SFR_ASM_COMPAT 1
要改为
//#define _SFR_ASM_COMPAT 1
因为AVRX可以用于WINAVR以及IAR。
#define _SFR_ASM_COMPAT 1 这句是针对IAR编译器定义的。(这个错误,花了我好几天才找出来,几乎想扔了,哈哈)
3. Makefile太旧了,只生成cof文件,在Avrstudio中调试有困难。
上传一个范例,根据AVRX中自带的Timers所修改的,可以直接打开里面的工程(用PN建立)。
点击此处下载armok0168347.rar
这个例子,执行两个任务:
1. LED1: PB.0关闭0.2秒,点亮0.8秒;
2. LED2: PB.1关闭2秒,点亮2秒; 好贴!
不错,等比完赛好好研究! DING 哈哈,顶 希望testcode开个AVRX专栏...有空我也玩玩... 好贴,顶啊! 这样的贴子真是好贴。这段时间在搞一个项目,完了后好好研究一下。
-----此内容被dengchongguang于2005-09-07,21:46:33编辑过 在<<AVR-GCC与AVR单片机C语言开发>>一书中,还保留着
#define _SFR_ASM_COMPAT 1
可能是用旧版本的问题吧.(我确实不喜欢20050214,问题太多)
书中说: 包含所有功能时,AVRX需要1K字节的空间.
由于用M8L,所以一直没敢用,现在用M16L,还是紧张点...有空试试...
http://www.e-midas.cn/Article_Show.asp?ArticleID=140
http://www.dearbook.com.cn/book/viewbook.aspx?pno=TS0027284
-----此内容被hotpower于2005-09-07,23:17:28编辑过 还是ARTX比较好玩 哈哈...确实ARTX好玩...玩时和"真"的一样. 不看文件日期不知道,一看吓一跳啊。最后的版本却是2001年发布的。我们现在才拿来学,唉,我们可真落后啊。 真是好贴阿!!! avrx(2。6g)在gcc上是不错,但在Iar下能成功编译库,但是程序总是跑飞,lz成功过吗 AVR的RTOS的选择:
AVR的RTOS很多,网络上比较常见的包含:
AvrX
http://www.barello.net/avrx/
AvrX是一个实时多任务的内核,支持多任务。用汇编编写
EtherNut - Nut/OS
http://www.ethernut.de/en/
FreeRTOS :
http://www.freertos.org/
FreeRTOS是一个开源的小型RTOS,用C语言编写
Salvo:
http://www.pumpkininc.com/
COMATOS:
http://www.nbb.cornell.edu/neurobio/land/STUDENTPROJ/2000to2001/greenblattCOMATOS/index.html
TinyOS:
http://webs.cs.berkeley.edu/tos/
Contiki:
http://www.sics.se/~adam/contiki/
XMK - eXtreme Minimal Kernel
http://sourceforge.net/projects/xmk
pico OS
http://picoos.sourceforge.net/
uSmartX
http://usmartx.sourceforge.net/
请问,这些RTOS哪些是免费的,开源,可移植的? ok 好 楼主? 那个【AVRX】 Make GCC工具是怎么配置的? 楼上请看
http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=705861&bbs_page_no=1&search_mode=3&search_text=ml07077&bbs_id=9999 好 mark , 还没研究过os.. MARK mark,回头研究 mark' mark thank you!!! mark mark very interesting !!!
页:
[1]