ARM与Linux
supreme42
学习能力强,技术扎实,有丰富的单板软硬件设计经验,熟悉单板及系统开发测试流程。
展开
-
ucos-ii在ARM7上移植
随着嵌入式技术的快速发展,实时多任务操作系统作为一种软件平台已逐步成为国际嵌入式系统的主流,目前世界上已经有一大批成熟的实时嵌入式操作系统,通常,对嵌入式软件的基本要求是体积小、指令速度快、具有较好的裁减性和可移植性,目前,实时操作系统很多,如 VxWorks , Windows CE , pSOS , QNX , LynxOS 等,这些操作系统都具有高可靠性、强实时性等特点,但他们都是商业操作系转载 2012-02-11 10:23:55 · 863 阅读 · 0 评论 -
uboot,eboot和bootloader的联系
bootloader是总称,uboot,eboot都是bootloaer,这话是没问题的。bootloader因为和硬件以及OS紧密相关,所以搞出很多花样来,简单的说uboot就是通过usb来下载os image文件的bootloader; eboot就是通过ethernet下载os image的bootloadereboot是微软提供的,目前主要用在wince下,但是,经过一些修转载 2012-03-07 22:03:13 · 1080 阅读 · 0 评论 -
Qtopia
目录简介Trolltech 提供三大Qtopia 版本:简介 Qtopia 是Trolltech 公司(现已被诺基亚收购)为采用嵌入式Linux 操作系统的消费电子设备而开发的综合应用平台, Qtopia包含完整的应用层、灵活的用户界面、窗口操作系统、应用程序启动程序以及开发框架。 Qtopia的特性如下 所示: 窗口操作系统 游戏和多媒体 工作辅助转载 2012-04-04 15:58:39 · 596 阅读 · 0 评论 -
VM虚拟机跟主机间共享文件
VM是常用的虚拟机软件,也是我们封装系统的利器。但经常碰到有朋友在坛子里问关于VM和实机之间交互文件的方法,区区不才,使用VM时间也不长,但稍微有一点经验,抛砖引玉,供大家讨论一下。有写错或者不完整的地方还请不吝指正。工具/原料已安裝VMware-workstation的电脑一台步骤/方法映射虚拟磁盘。映射虚拟磁盘是VM提供的一种功能,可以将虚拟机中转载 2012-03-19 00:59:13 · 7683 阅读 · 0 评论 -
LINUX文件系统介绍
文件系统的作用就是在应用概念的文件和存储设备之间提供一个中间层,以使多个文件驻留在一个存储设备上,由文件系统来管理所有文件的存储。文件系统将每个存储设备化为一系列目录,每个目录含有若干文件。 块(block)分配 传统的 Unix 文件系统使用块分配机文件系统的作用就是在应用概念的文件和存储设备之间提供一个中间层,以使多个文件驻留在一个存储设备上,由文件系统来管理所有文件的存储。文件系统将每个存储转载 2012-04-04 16:38:12 · 520 阅读 · 0 评论 -
linux fork函数的精辟解说
此文原文来源于一个blog,文章的名称为:linux fork函数的精辟解说原文地址:http://blog.chinaunix.net/space.php?uid=12461657&do=blog&id=3062996感觉这篇文章不错,在此分享下来,在原文的基础上增加了自己的一些理解和说明。 开始演示:[plain]view plaincopyprint? [root@test co转载 2012-04-05 23:24:17 · 685 阅读 · 0 评论 -
Linux系统开机启动过程分析
开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程。分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径。 启动第一步——加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等转载 2012-04-05 23:25:55 · 601 阅读 · 0 评论 -
vmware下找不到hgfs
看见很多新手都遇到了vmware下linux和宿主xp系统共享文件的问题,我今天也遇到了!& k; }8 n1 [; Q) S- ~5 l; c% h9 ]& R1 `3 g! }7 q/ p" E, u 我的vmware5.5下装了RHEL4和redhat9.0 宿主机系统是xp,想把xp的某个文件拷到linux系统中去,过程是挺费劲的,结果是满意的。又摆平了一个问题,虽然是微不足道的转载 2012-03-21 02:18:24 · 3654 阅读 · 0 评论 -
如何在vmware虚拟机下挂载windows硬盘
要在vmware的linux底下挂载盘符,必须把windows下的硬盘加入vmware底下的设备去,这就需要高级用户问题补充:原创 2012-04-10 20:25:49 · 1610 阅读 · 0 评论 -
手把手教你把Vim改装成一个IDE编程环境
1写在前面 Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个好用的IDE是何等的重要啊, 估计很多人就是卡在这个门槛上了, "工欲善其事, 必先利其器"嘛, 我想如果有一个很好用的IDE, 那些Linux牛人也会欢迎的. 这都是劳动人民的美好愿望罢了转载 2012-04-11 00:05:22 · 572 阅读 · 0 评论 -
JLINK与JTAG的区别
调试ARM,要遵循ARM的调试接口协议,JTAG就是其中的一种。当仿真时,IAR、KEIL、ADS等都有一个公共的调试接口,RDI就是其中的一种, 那么我们如何完成RDI-->ARM调试协议(JTAG)的转换呢? 有以下两种做法: 1. 在电脑上写一个服务程序,把IAR、KEIL和ADS中的RDI命令解析成相关的JTAG协议,然后通后一个物理转换接口(注意,这个转换只是电气物理层上的转换转载 2012-01-17 01:01:16 · 12803 阅读 · 0 评论 -
uC/OS-II源码分析(总体思路 三)
OSTimeDly 在Task中,一般执行一段时间之后调用OSTimeDly推迟一段时间再继续运行,OSTimeDly将本进程从Ready TCBList中删除,然后将Delay的时间设置给OSTCBDly,最后调用OS_Sched进行进程调度。void OSTimeDly (INT16U ticks){ INT8U y; if (ticks转载 2012-02-11 10:31:43 · 817 阅读 · 0 评论 -
uCOS-II核心算法分析(μCOS-Ⅱ)
μC/OS-Ⅱ是一种免费公开源代码、结构小巧、具有可剥夺实时内核的实时操作系统。其内核提供任务调度与管理、时间管理、任务间同步与通信、内存管理和中断服务等功能。适合小型控制系统,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB。μC/OS-Ⅱ为何如此高效呢?我们从它的核心算法——任务调度算法开始分析。2.1任务调度算法分析 操作系统的实时性主要体现在:转载 2012-02-11 10:24:56 · 1015 阅读 · 0 评论 -
uCOS-II任务机制
1.任务是一个无返回的无穷循环。uc/os-ii总是运行进入就绪状态的最高优先级的任务。2. 任务是如何调度(切换)的?因为uc/os-ii总是运行进入就绪状态的最高优先级的任务。所以,确定哪个任务优先级最高,下面该哪个任务运行,这个工作就是由调度器(scheduler)来完成的。任务级的调度是由函数OSSched()完成的,而中断级的调度是由函数OSIntExt()完成。对于OSSc转载 2012-02-11 10:25:41 · 1229 阅读 · 0 评论 -
uCOS-II任务建立示例
#include "config.h"#include "stdlib.h"#define LED1 (1 // P1.18控制LED1#define LED2 (1 // P1.19控制LED2#define TaskStkLengh 6转载 2012-02-11 10:26:22 · 907 阅读 · 0 评论 -
μC/OS-Ⅱ的移植
μC/OS-Ⅱ的大部分代码是用ANSIC写成的,在对μC/OS-Ⅱ进行移植到不同处理器平台时,需要解决的主要问题有:数据类型的重定义、堆栈结构的设计和任务切换时的状态保存与恢复。在μC/OS-Ⅱ移植过程中涉及以上三个问题的代码都有包含在文件OS_CPU.H、OS_CPU_C.C、OS_CPU_A.S中。下面以μC /OS-Ⅱ在LPC2104上的移植为例进行探讨,介绍移植过程中的主要步骤和需要修改的转载 2012-02-11 10:27:06 · 776 阅读 · 0 评论 -
uCOS-II中的OS_CPU.h,OS_CPU_A.s,OS_CPU.c
μC/OS-Ⅱ的移植集中在OS_CPU.h,OS_CPU_A.s,OS_CPU.c这三个文件上,下面分别详细介绍三个文件中的函数和需要修改或者编写的代码。1. OS_CPU.h的移植该文件定义了和处理器及编译器相关的定义及一些全局函数声明。由于ARM7 处理器字长为32位,半字长为16位,字节为8位,因此在OS_CPU.h文件修改与编译器相关的定义如下:typedef unsign转载 2012-02-11 10:28:09 · 1856 阅读 · 0 评论 -
ARM汇编中lr(r14)寄存器的作用
lr(r14)的作用问题,这个lr一般来说有两个作用:1.当使用bl或者blx跳转到子过程的时候,r14保存了返回地址,可以在调用过程结尾恢复。2.异常中断发生时,这个异常模式特定的物理R14被设置成该异常模式将要返回的地址。另外注意pc,在调试的时候显示的是当前指令地址,而用mov lr,pc的时候lr保存的是此指令向后数两条指令的地址,大家可以试一下用mov pc,pc,结果得转载 2012-02-11 10:28:47 · 1298 阅读 · 0 评论 -
ARM7寄存器分布图
在汇编语言中寄存器R0~R13为保存数据或地址值的通用寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊用途,并且可用于任何使用通用寄存器的指令。其中R0~R7为未分组的寄存器,也就是说对于任何处理器模式,这些寄存器都对应于相同的32位物理寄存器。寄存器R8~R14为分组寄存器。它们所对应的物理寄存器取决于当前的处理器模式,几乎所有允许使用通用寄存器的指令都允许使用分组寄存器。寄存器R8~R1转载 2012-02-11 10:29:26 · 1635 阅读 · 0 评论 -
uC/OS-II源码分析(总体思路一)(
首先从main函数开始,下面是uC/OS-II main函数的大致流程:main(){ OSInit(); TaskCreate(...); OSStart();}首先是调用OSInit进行初始化,然后使用TaskCreate创建几个进程/Task,最后调用OSStart,操作系统就开始运行了。 OSInit 最先看看OSInit完成哪些初始化:void转载 2012-02-11 10:30:09 · 770 阅读 · 0 评论 -
uC/OS-II源码分析(总体思路 二)
OSTaskCreate OSTaskCreate负责创建Task所需的数据结构,该函数原形如下所示:INT8U OSTaskCreate (void (*task)(void *pd), void *p_arg, OS_STK *ptos, INT8U prio)其中task是一个函数指针,指向该Task所开始的函数,当这个Task第一次被调度运行时将会从task处开始运行。转载 2012-02-11 10:30:50 · 588 阅读 · 0 评论 -
设置vim语法高亮显示和自动缩进
1、配置文件的位置在目录/etc/下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效,而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:".vimrc",例如,?root目录下,通常已经存在一个.vimrc文件。但是这个文件默认是没有,ports安装完vim以后要从/usr/local/share/vim/vim${VIM_VERSION}/v转载 2012-04-11 00:42:15 · 1082 阅读 · 0 评论