嵌入式linux学习心得(精选多篇)

时间:2024-11-16 16:20:08
嵌入式linux学习心得(精选多篇)[此文共6180字]

第一篇:嵌入式linux学习内容

知识结构

1. 嵌入式处理器与裸机程序开发 2. linux系统管理 3. linux应用程序开发 4. linux驱动程序开发 5. linux内核开发与系统移植

一、处理器

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. 串口驱动程序

学习顺序

1. 嵌入式处理器与裸机程序开发 2. linux系统管理 3. linux应用程序开发 4. linux内核开发基础 5. 嵌入式linux环境搭建 6. linux驱动程序开发 7. 深入学习linux内核

第二篇:嵌入式linux学习步骤

嵌入式linux学习步骤

作者:phantom 时间:2014-8-6 文章来源:来自网络

1、linux 基础

安装linux操作系统 linux文件系统 linux常用命令 linux启动过程详解 熟悉linux服务能够独立安装linux操作系统 能够熟练使用linux系统的基本命令 认识linux系统的常用服务安装linux操作系统 linux基本命令实践 设置linux环境变量 定制linux的服务 shell 编程基础使用vi编辑文件 使用emacs编辑文件 使用其他编辑器

2、shell 编程基础

shell简介 认识后台程序bash编程熟悉linux系统下的编辑环境 熟悉linux下的各种shell 熟练进行shell编程熟悉vi基本操作 熟悉emacs的基本操作 比较不同shell的区别 编写一个测试服务器是否连通的shell脚本程序 编写一个查看进程是否存在的shell脚本程序 编写一个带有循环语句的shell脚本程序

3、linux 下的 c 编程基础

linux c语言环境概述 gcc使用方法 gdb调试技术 autoconf automake makefile 代码优化 熟悉linux系统下的开发环境 熟悉gcc编译器 熟悉makefile规则编写hello,world程序 使用 make命令编译程序 编写带有一个循环的程序 调试一个有问题的程序

4、嵌入式系统开发基础

嵌入式系统概述 交叉编译 配置tftp服务 配置nfs服务 下载bootloader和内核 嵌入式linux应用软件开发流程熟悉嵌入式系统概念以及开发流程 建立嵌入式系统开发环境制作cross_gcc工具链 编译并下载u-boot 编译并下载linux内核 编译并下载linux应用程序

4、嵌入式系统移植

linux内核代码 平台相关代码分析 arm平台介绍 平台移植的关键技术 移植linux内核到 arm平台 了解移植的概念 能够移植linux内核移植linux2.6内核到 arm9开发板

5、嵌入式 linux 下串口通信

串行i/o的基本概念 嵌入式linux应用软件开发流程 linux系统的文件和设备 与文件相关的系统调用 配

置超级终端和minicom 能够熟悉进行串口通信 熟悉文件i/o 编写串口通信程序 编写多串口通信程序

6、嵌入式系统中多进程程序设计

linux系统进程概述 嵌入式系统的进程特点 进程操作 守护进程 相关的系统调用了解linux系统中进程的概念 能够编写多进程程序编写多进程程序 编写一个守护进程程序 sleep系统调用任务管理、同步与通信 linux任务概述任务调度 管道 信号 共享内存 任务管理 api 了解linux系统任务管理机制 熟悉进程间通信的几种方式 熟悉嵌入式linux中的任务间同步与通信编写一个简单的管道程序实现文件传输 编写一个使用共享内存的程序

7、嵌入式系统中多线程程序设计

线程的基础知识 多线程编程方法 线程应用中的同步问题了解线程的概念 能够编写简单的多线程程序编写一个多线程程序

8、嵌入式 linux 网络编程

网络基础知识 嵌入式linux中tcp/ip网络结构 socket 编程 常用 api函数 分析ping命令的实现 基本udp套接口编程 许可证管理 ppp协议 gprs 了解嵌入式linux网络体系结构 能够进行嵌入式linux环境下的socket 编程 熟悉udp协议、ppp协议 熟悉gprs 使用socket 编写代理服务器 使用socket 编写路由器 编写许可证服务器 指出tcp和udp的优缺点 编写一个web服务器 编写一个运行在 arm平台的网络播放器

9、gui 程序开发

gui基础 嵌入式系统gui类型 编译qt 进行qt开发熟悉嵌入式系统常用的gui 能够进行qt编程使用qt编写“hello,world”程序 调试一个加入信号/槽的实例 通过重载qwidget 类方法处理事件

10、linux 字符设备驱动程序

设备驱动程序基础知识 linux系统的模块 字符设备驱动分析 fs_operation结构 加载驱动程序了解设备驱动程序的概念 了解linux字符设备驱动程序结构 能够编写字符设备驱动程序编写skull驱动 编写键盘驱动 编写i/o驱动 分析一个看门狗驱动程序 对比linux2.6内核与2.4内核中字符设备驱动的不同linux 块设 ……此处隐藏2343个字……ot移植过程? 第四篇 linux的内核移植(15天) 4.1 配置编译linux内核 4.1.1 linux内核源代码结构 4.1.2 linux内核编译选项解析 4.1.3linux内核编译链接 4.2linux启动过程源代码分析 4.3linux内核移植平台相关代码分析 ? 第五篇 linux的驱动编程(15天) 5.1 linux的设备管理 5.2 linux的驱动程序结构 5.3 简单的字符设备驱动程序 5.4 linux内核模块的加载卸载 5.5 linux的打印调试方法 5.6 字符设备的高级属性-中断 5.6 常见的串口网口驱动分析 ? 第六篇 文件系统制作(5天)

6.2 文件系统和存储设备的选择 6.3 部署ramdisk文件系统的过程 ? 第七篇 linux的高级应用编程(5天) ? 总用时 15+7+7+15+15+5+5 大概两个半月

第五篇:嵌入式linux驱动学习总结

调用gcc: export path=$path:/usr/(请帮助宣传好范文 网:WWw.)local/arm/3.4.1/bin

用gcc编译:arm-linux-gcc –o run adc.c

查看gcc: arm-linux-gcc –v

配置nfs

安装nfs

ubuntu上默认是没有安装nfs服务器的,首先要安装nfs服务程序: sudo apt-get install nfs-kernel-server

安装nfs-kernel-server时,apt会自动安装nfs-common和portmap 这样,宿主机就相当于nfs server

配置nfs

(1)配置portmap

方法1: 编辑/etc/default/portmap, 将 -i 127.0.0.1 去掉. 我用的是第一种方法!!但不知道具体什么意思

方法2: $ sudo dpkg-reconfigure portmap , 对should portmap be bound to the loopback address? 选n.

(2)配置/etc/hosts.deny

禁止任何host(主机)能和你的nfs服务器进行nfs连接,加入:

### nfs daemons

portmap:all

lockd:all

mountd:all

rquotad:all

statd:all

(3)配 置/etc/hosts.allow

允许那些你想要的主机和你的nfs服务器建立连接。下列步骤将允许任何ip地址以192.168.2开头的主机(连接到nfs服务器上),也可以指定

特定的ip地址,加入:

### nfs daemons

portmap: 192.168.1.

lockd: 192.168.1.

rquotad: 192.168.1.

mountd: 192.168.1.

statd: 192.168.1.

/etc/hosts.deny 和 /etc/hosts.allow 设置对portmap的访问. 采用这两个配置文件有点类似"mask"的意思. 现在/etc/hosts.deny中禁止所有用

户对portmap的访问. 再在/etc/hosts.allow 中允许某些用户对portmap的访问.

sudo /etc/init.d/portmap restart

重启portmap daemon.

(4)配置/etc/exports

nfs挂载目录及权限由/etc/exports文件定义

比如我要将将我的/opt/friendlyarm/mini2440/root_nfs目录让用户的ip共享, 则在该文件末尾添加下列语句:

/opt/friendlyarm/mini2440/root_nfs *(rw,sync,no_root_squash)

nfs客户端能够共享nfs服务器/opt/friendlyarm/qq2440/root_nfs目录内容.且有读,写权限, 并且该用户进入

/opt/friendlyarm/mini2440/root_nfs目录后的身份为root

最好加上sync, 否则 $ sudo exportfs -r 时会给出警告, sync是nfs的默认选项.

showmount -e 查看nfs server的export list.

若更改了/etc/exports, 运行 sudo exportfs -r 更新

运行 /etc/init.d/nfs-kernel-server restart 重启nfs服务

(5)测试nfs

可以尝试一下挂载本地磁盘

我前面开始时已经提到了我的主机ip是192.168.1.101

我现在试把/opt/friendlyarm/mini2440/root_nfs目录挂载到/mnt目录下 mount -t nfs 192.168.1.101:/opt/friendlyarm/mini2440/root_nfs /mnt 就101和:之间的空格我耗了1个小时

成功的挂载上的话你会在/mnt目录下看到root_nfs这个文件夹下的内容 arm9之家账户:李向阳85

安装ncurses

ncurses是字符终端下屏幕控制的基本库。可能很多新开发的程序都不使用了,不过如果要编译一些老程序,还经常遇得到。

安装:ncurses

http://ftp.gnu.org/pub/gnu/ncurses/

./configure --without-debug #以及其它自己需要的参数

make

make install

3,继续你的make menuconfig。

图形界面出来了。

23:22:22

小允

23:22:31

小允 23:22:40

有用不同的名字的吗

寂寞沙洲冷 23:22:42

我把drivers下面的makefile都添加上了 寂寞沙洲冷 23:23:17

叫misc devices 可以吧

小允 23:23:22

2410adc_driver和2410adc_featuresnengbutongma小允 23:23:33

这两个必须一样

小允 23:23:42

这才是kconfig的工作原理

《嵌入式linux学习心得(精选多篇)[此文共6180字].doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式