我的linux arm学习计划

发布 2024-03-30 23:10:14 阅读 3376

arm裸机程序的学习。

linux系统安装搭建自己的开发环境。

主要书目 《精通linux设备驱动程序开发》 印度 sreekrishnanvenkateswaran

linux c编程。

学习目的:通过该阶段的学习,主要学会在linux字符界面下用gcc进行编程及如何使用gdb进行程序调试,学会linux c的文件操作,进线程编程,网络编程及makefile文件的编写。

参考书目:《linux c语言编程一站式学习》《linux c编程指南》

how to write makefile》

参考**:天嵌开发板配套光盘之中嵌**1-20课。

国嵌**:第2阶段(linux应用程序设计)

使用工具:编译工具-gcc,调试工具-gdb,编程工具-vi

arm硬件编程:

通过该阶段的学习知道如何使用keil4进行6410的裸机编程,了解arm的体系结构及汇编。

参考书目:《arm嵌入式体系结构与编程》《s3c6410 datasheet》

嵌入式linux应用开发完全手册》第二篇。

参考**:韦东山**1-8课。

使用工具:jlink s3c6410开发板。

使用软件:keil4 serrg

嵌入式环境搭建:

系统移植:通过该阶段学习能够初步理解什么是bootloader,什么是内核,什么是文件系统并且能移植一个系统在6410开发板上成功运行,第一步移植内容为bootloader(u-boot)移植,第二步移植内容为内核移植,第三步移植内容为文件系统移植。

参考书目:《嵌入式linux应用开发完全手册》第三篇。

天嵌配套光盘之《天嵌科技出品-linux移植》

参考**:《嵌入式linux应用开发完全手册》配套**9-11课。

使用软件:arm-linux-gcc

驱动开发:通过该阶段的学习大家能初步了解linux驱动开发的步骤,了解linux驱动程序的基本框架并且能成功移植几个最常用驱动程序。

参考书目:《嵌入式linux应用开发完全手册》第四篇,《linux设备驱动程序》

gpio接口

iic接口。

uart接口。

adc接口。

内核开发。u-boot

设备驱动。参考书目。

要想学好嵌入式linux,首先要解决两个重要问题:

1. 学什么?

2. 怎么学?

首先解决第一个问题。

嵌入式linux的系统架构包括软件和硬件两个部分,如下图:

再来看看一个成熟的嵌入式产品的开发流程是怎么一个过程:

1.硬件开发。

责任人: 硬件工程师。

负责部分:基于evm板, 添加、修改、删除硬件。

移植。责任人:系统工程师或驱动工程师。

负责部分:将bootloader移植到流程1所开发出来的硬件平台。

3. linux内核。

责任人:系统工程师或驱动工程师。

负责部分:将linux内核移植到流程1所开发出来的硬件平台。

4.根文件系统制作。

责任人:系统工程师。

负责部分:制作供内核启动的根文件系统。

5.1 业务相关的应用程序。

责任人:应用工程师。

负责部分:开发和产品密切相关的应用程序。

5.2 业务相关的驱动程序。

责任人:驱动工程师。

负责部分:开发和产品密切相关的驱动程序,如触摸屏、无线网卡。

6. 功能测试,性能测试,系统集成测、实验局(系统设备)、发布。

看完上面这些,你应该对嵌入式linux有一个大概的认识了。我们再来理清一下知识结构,再对其进行细分。先来看预览一下“学什么”知识结构:

1.嵌入式处理器与裸机程序。

系统管理。应用程序开发。

驱动程序开发。

内核开发与系统移植。

再来对每一项要学习的东西进行汇集:

处理器:1. arm处理器工作模式。

2. arm系统寄存器。

3. arm寻址方式。

4. arm 汇编指令集。

5. arm环境c语言编程。

6. arm中断与异常。

7. ads集成开发环境。

8. 裸机程序开发(串口、lcd、时钟、led、按键……)

系统管理:1. linux定制安装。

2. linux命令详解。

3. samba、nfs、tftp、wireshark使用。

4. shell编程。

应用程序开发:

1. gcc、gdb、makefile

2. 文件、时间编程。

3. 多进程、多线程程序设计。

4. 进程间通讯。

5. 网络编程。

6. qt图形化应用程序开发。

7. android图形化应用程序开发。

内核开发:1. linux内核配置与裁剪。

2. linux内核模块开发。

3. 根文件系统制作。

4. 进程子系统。

5. 内存子系统。

6. proc文件系统。

7. 系统调用。

8. 内核定时器。

9. 内核异常分析。

驱动程序开发:

1. 字符设备驱动程序。

2. 总线、设备、驱动模型。

3. 硬件访问技术。

4. 中断处理。

5. input设备驱动。

6. platform驱动程序。

7. pci、usb驱动程序。

8. 网卡驱动程序。

9. 触摸屏驱动程序。

10. 串口驱动程序。

能够在系统上运行流水灯内核模块编译,搭建自己的linux和windows以及arm11开发环境。对linux内核构架有一定的了解,能够驱动显示屏。

arm硬件。

gpio接口,usb,iic,摄像头驱动,lcd显示屏驱动,wifi模块驱动can总线、红外遥感、矩阵键盘驱动、直流电机驱动。

经过一段时间的学习我发现自己对linux系统还是比较感兴趣的,不管是命令还是编程还是内核源码的构架都是相对来说是比较有兴趣的。先前看过《鸟哥的linux私房菜》,后来开了一些linux下的c编程之类的书籍,然后看的是一些linux下的设备驱动详解之类的书籍,总觉的自己没有什么进步。我想缺少的是系统化的学习训练,缺少规划,总是**黑了**休息,踩到西瓜皮,滑到哪儿算哪儿。

至于说为什么选择linux我觉得linux的内核源码可以共自己编译自己的内核,可以按照自己的需要裁剪内核,只需要在makemenuconfig 对需要的做出的产品的需求做一些简单的配置,基于结果做一些小调整就可以完成软件的一大部分工作的。所有的东西都得追究起源,c语言因为linux而生,linux有c语言而生。就连风靡全球android架构也是与linux架构颇有渊源。

必须过一遍的资料。

嵌入式linux驱动程序设计从入门到精通》冯国进。

深入linux内核架构》wolfgang mauerer 著。

深入理解嵌入式linux设备驱动程序》 曹国辉曾志鹏。

arm11嵌入式linux系统实践与应用》 冯新宇初宪宝吴岩。

基于arm11的智能家居设计和实现》 李明亮刘小龙牟宏磊徐宗清。

linux内核设计的艺术》

arm linux嵌入式网路控制系统》

全国计算机等级考试**教程——嵌入式系统开发技术》

linux下的mysql数据库》三月份学习。

四月份。目标可以用内核编译驱动gpio wifi cmos摄像头上wifi小车传**。

我的学习计划

我是07级尼泊尔籍的本科生施利斯蒂 shristishrestha 将于2012年7月毕业。我希望在同一个大学继续在肿瘤科读研究生。我对肿瘤科这专业很感兴趣。在本科学习期间了解了很多疾病并参与了很多手术。在本科期间掌握了每个科室的病情,和处理方式。但,其中肿瘤为最感兴趣,我了解了肿瘤疾病的化疗方面和...

我的学习计划

我的学习计划一篇爸爸说我的学习方法不好,一是原来复习,我把整本辅导书和课本从头到尾每个字都看一遍,这样花的时间很多,还不容易复习到重点部分。爸爸说每个人的复习时间都是一样的,如果我想要成绩比别人更好,就得有一个具体的实施计划 什么时候写作业,什么时候复习学校的课程,什么时候放松活动。如果不制定一张计...

我的学习计划

我的学习计划15篇。暑假收获 整体上暑假过得还是蛮充实的,7月份基本是每天上午写作业,下午看课外书,每周跑3次800米,每个周末去打羽毛球。考虑到初二年级功课的进度会加快,而且增加了物理科目,所以在8月份把精力主要放在背单词,复习英语和预习物理,把英语的考试卷子讲解了一遍并且阅读了10本典范英语6。...