原创 ARM_00_OS之LPC213X版

2007-3-30 23:13 6479 7 9 分类: MCU/ 嵌入式

现在使用的是LPC2132 MCU,如果您使用其它型号的CPU的话,只要在选项中选择合适的CPU型号,并在CPU.h文件中修改MCU型号即可。


ARM_00_OS原本是在ADuC702x上写的,该芯片上可以检测电源电压以及芯片温度,而LPC没有。我想ADuC用的人可能比较少,所以还是花了点时间弄到LPC上来了,感兴趣的朋友可以下载来玩一玩^_^。当然,您也可以在上面改进或者给我提一些意见和建议。


如果您要将重新编译过的hex文件下载到板上运行的话,请先确认选项中的创建HEX文件是否勾上,否则并未创建hex文件,烧入的而是圈圈编译的hex文件。


(已知一个致命的bug,在软件任务切换中,如果发生定时器切换任务,会导致程序跑飞,等有空了我再来换换结构修正一下。)


ARM_00_OS(LPC213x版)下载地址:rar


实际运行的效果:


点击看大图


keil仿真图:


点击看大图

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

computer00 2008-4-7 01:57

思路就是构建好堆栈,方便在不同模式下进行压栈和出栈操作。我为何会知道?因为我压栈时就将它们压到了那里,我当然知道了。有些是编译器自动生成的压栈指令,这些就需要看编译后的汇编代码了。

用户111888 2008-4-6 17:28

00你好,这里面你用ARM指令写的一些程序我不是很明白,还请指点: 1、你用ARM指令写切换任务、设置堆栈、FIQ等子函数的思路是怎么样的?我怎么看得一头雾水呢? 比如:你设置堆栈子函数里有几句: __asm STMDB R12!,{R8} //该位置保存的是R3。将其清0。 //请问是怎么知道该位置保存的是R3??? __asm STMDB R12!,{R8} //该位置保存的是R2。将其清0。 //请问是怎么知道该位置保存的是R2??? __asm STMDB R12!,{R8} //该位置保存的是R1。将其清0。 __asm STMDB R12!,{R8} //该位置保存的是R0。将其清0。 __asm LDMIA SP,{R8} //将刚压入的SPSR(见SWI_VEC.S文件)出栈至R8中。 Mode|=~(0x20); //将Mode的其它位置1,只保留T位。 __asm ORR R8,R8,#0x20 //将SPSR中的T位置1。 __asm AND R8,R8,R2 //将SPSR的值与Mode相与。从而T位跟Mode的T位相同{} __asm STMDB R12!,{R8} //将SPSR压栈。任务被调度时,SPSR将被返回至CPSR。 __asm MOV R8,#0 //R8清0{} __asm STMDB R12!,{R8} //该位置保存的是用户模式下的R14。将其清0。 __asm STMDB R12!,{R8} //该位置保存的是R12。将其清0。 __asm STMDB R12!,{R8} //该位置保存的是R11。将其清0。 __asm STMDB R12!,{R8} //该位置保存的是R10。将其清0。 __asm STMDB R12!,{R8} //该位置保存的是9。将其清0。 __asm STMDB R12!,{R8} //该位置保存的是R8。将其清0。 __asm STMDB R12!,{R8} //该位置保存的是R7。将其清0。 __asm STMDB R12!,{R8} //该位置保存的是R6。将其清0。 __asm STMDB R12!,{R8} //该位置保存的是R5。将其清0。 __asm STMDB R12!,{R8} //该位置保存的是R4。将其清0。 请问你是怎么知道这个位置保存的保存的各是什么寄存器的值?
相关推荐阅读
computer00 2013-06-05 16:27
[招聘]Android系统开发工程师
任职要求: 1. 扎实的C/C++基础,熟悉嵌入式Linux和Android操作系统的软件开发; 2. 良好的沟通能力和逻辑思维能力; 3. 良好的英文文献阅读能力; 4. 具备...
computer00 2013-06-04 09:26
[招聘]Android应用开发工程师
任职要求: 1. 具备扎实的面向对象编程思想和JAVA编程基础; 2. 熟悉Eclipse+ADT开发环境,熟练掌握Android基本类库; 3. 熟悉网络应用和多媒体应用开发; ...
computer00 2012-09-26 13:15
圈圈的新浪官方围脖
http://weibo.com/computer00  ...
computer00 2012-09-26 13:12
欢迎大家去收听圈圈弹的曲子
http://www.tudou.com/home/_105209016  ...
computer00 2009-06-29 15:07
《圈圈教你玩USB》勘误(更新日期2009 年06月29日)
《圈圈教你玩USB》勘误(更新日期2009 年06月29日)下载地址1:下载地址2: 勘误.pdf...
computer00 2009-06-25 11:23
一块磐正845GE主板PS2接口的修复
圈圈有一部台式机,某天开机时,发现键盘用不了了,停留在输入BIOS密码那里。主机自检通过,但是蜂鸣器却发出很微弱的、连续的声音,同时键盘的三个LED也没有出现象往常一样的闪烁一下。圈圈以为多日未用,积...
我要评论
2
7
关闭 站长推荐上一条 /3 下一条