1 应用开发:
C、linux基本原理——作系统和模块的开发,系统的调用、操作系统下的应用程序的编译,执行程序、英语技术文档
2 内核和驱动开发:
C、精通内核实现原理,写的驱动程序是内核的一部分、常见的硬件平台、理解驱动实现原理,并对硬件电路有所熟悉
3 固件开发
芯片级的开发、c、汇编、硬件平台、精通逻辑分析仪、对OS底层
4 硬件开发
模电和数电 、有单片机和ARM处理的基础、pcb,调试电路
5、系统开发
系统软件及开发软件、才、汇编、架构、能移植bootloader kernel
嵌入式产品开发流程
硬件设计,系统构建、驱动编程、应用编程、gui开发、算法优化、实时性优化、系统测试。
开发后期工作
LINUX命令 :cat grub .conf cd dev ls b,c hda hdb
主设备 cd 。。Cd etc(配置文件) cat inititab cd rc.d cd../..
Cat vftpd.conf cd /home cd /lib cd /mnt
Mount -t cdrom mkdir windows cd proc(数字表示进程的ID号) cat iomen cat ioports cat kmesaage cat meninfo cat modules cat partitions cat pci cat stats cat vertions cat uptime cd sbin cd tftp cd user
LINUX的组织目录
Cp klkk///// test.tst mv rm —f test.c rm-fr d man rm
Chmod 755 s23 ln-s etc s123 gzip 某个文件 gzip-d tar-c-z-v-f test.tar.gz du
Tar-xzvf test.tar.gz pach
网咯命令
Netstat -nl netstat -nlu finger who ifconfig -a ifconfig eth0
Shell:
Shell 是用户与内核之间交互的工具 也是程序的解析
建一个shell的解析文本 vi test.sh 。Vi有几种编辑模式,输入模式
Shell 工具解析 sh test。C cat test。Sh chmod 757 ttl.sh 。/sh.sh
Shell 变量:环境变量和临时变量
Echo echo ¥PATH echo $hostname $localname export path=/
用户定义的变量 myfile=/home/s123/test。Sh echo $myfile 输入输出变量(1):read 命令 echo命令
Shell中的特殊字符:引号双引号 输入输出重定向符 cal>abc cat abc
注释,管道线,ps ps -e |grep vsftpd kill 1671 ps -e ps -f (进程的执行路径)
Whlie true;do date;sleep;done
Linux 的网络应用
Chmod修改读写权限 755 s123 ping 129 telnet ip地址 telnet help z:! fg
ftp主要是文件的接受 netstat -nl -nlt
NFS mount -t nfs 192/。168.1.3:/home/mnt/nfs
Mkdir nfs pwd umont /mnt/nfs sbin/severces nfs stop stats mount
linux的进程控制
程序:存放在磁盘中的可执行文件
进程:程序的执行实例。
进程结构:代码段,数据段,堆栈段(存放临时的变量)
堆:静态变量和全局变量。栈:子函数的入口函数的局部变量和临时变量。
数据段:存放全局、常数、动态数据的分配的空间
init进程:它不是系统内的进程,但是它以超级用户特权进行。
驱动程序是在内核空间中
获取进程标识
fork()进程创建:调用一次,返回两个函数值:子进程返回0 父进程返回的是子进程的ID
子进程和父进程的区别:
返回值、进程ID、父进程的锁,子进程不继承。
windows 环境下的虚拟环境:cygwn。 用gcc进行编译.gcc -0 fork fork.c ./fork
vfork()没有修改的数据暂时不复制。——写时复用。Ulinux
exec()
进程管理:
程序的顺序执行和并发执行,多道程序
进程就是具有独立功能程序关于某个数据集合的一次运行活动。
进程控制信息、pcb快 pcb链接队列 索引方式 临界资源和临界区 进程同步和互斥 信号量机制
进程调度算法:先来先服务、spf,高优先级调度算法、时间片轮转调度算法、多级反馈队列调度算法、
死锁
线程:进程是一个资源拥有者.线程是一个进程的执行实体
线程和进程的区别:拥有资源、调度、并发性、系统开销。
系统开销
线程特点:动态性、多个线程可以并发执行、有控制表、共享系统资源。
LINUX的进程和同步通信:信号量,共享内存、管道机制、消息队列、信号机制。
LINUX编程基础:
1、linux编程风格。
vi 编辑 vi test.c yy p cat test.c
3、 gcc gcc -v gcc test.c生成a.out 。/a.out gcc -o test test.c ls -l
gcc -c test.c
试用GNU MAKE编辑Makefile
makefile 中的环境变量
5、 调试工具 GDB
gdb 是调试可执行的程序而不是源程序 file、pwd、cd、run、kill、b
进程间通信:
目的:数据传输、共享数据、通知事件、资源共享、进程控制。
进程通信有6个方式;
1、管道 ps |grep vsftped 主要用于不同进程之间的通信 ps -ef |grep nfs
后台的守护进程 的父进程是1号进程。管道的创建和关闭pipe()
sourceCRT
vi pipe.c gcc -o pipe pipe.c 。/pipe
父进程向管道里读,子进程向管道里写 父进程之间和子进程之间的通信。
命名管道:进程退出了,管道还在那 。是实现不相关进程之间的通信 。/fifo_write vvvvvvvvvvvvvvv
2、信号通信
3 守护进程
在LINUX后台运行不能与控制终端交互的系统进程,在系统引导时启动。
ps -ef 如: kswapd kuupdated sshd nfs xitend vsftpd sumd
基本特征:超级用户,用户Id为0 updated除了 会话组是一个或多个进程组组成的。所有的父进程都是init 进程
守护进程的编写:1、创建子进程,父进程退出 2、调用setsid 创建一个新的会话3、改变当前目录为根目录。4、重设文件权限掩码 umask 5、 关闭不需要的文件描述符 用for循环来做。
例子:dameno.c (open与fopen) 读写权限(0600)
守护进程的处理:使用syslog 将信息输入到“/var/log/message、
函数syslog 使用说明 openlog函数 守护进程系统日志实例:sys_log_dameon.c
共享内存:是进程间共享数据最快的一种方式 。共享内存实现的两个最主要的步骤。
1、创建共享内存。2 映射 系统调用shmget() shmat() shmdt() 例子 shmadd.c
消息队列 : 它是一个消息的链表,这些消息存在于内核中,由“队列ID”来标识。
消息队列的实现包括创建和打开消息队列msgget()、添加消息msgsnd()、读取消息msgrev()、控制消息队列msgctl()。例子:msg.c
下载LINUX的内核
minconm -s LINUX的终端参数设置
rpm -ivh 。。。。 。rpm
vi tftp 传给TFTP 链接tftp 服务 connect 192.0.0.0 put test get test
把LINux的镜像文件拷过去
ARM技术概述:
ARm的体系结构——risc处理区设计的特征、load/store体系结构。固定的32位指令、3地址指令格式、寄存器窗口、延迟转移、指令单周期执行。版本3是增加cpsr、spsr寄存器mrs、msr 版本4增加了有符号和半符号字节 trumb 状态、增加了处理器的特权模式,使用的是用户模式下的寄存器。Thurmb——
ARM处理器两种状态的切换方法——进入thurmb bit{0}为1时、IRQ\FRQ、unfef、abort、swi
ARM寄存器组成概述_37个_31个通用寄存器、6个状态寄存器
ARM的异常中断_过程如下:将cpsr的内容保存到spsr中、设置cpsr中的相应位、将引起异常的下一条指令地址保存到R14、给PC强制赋值。
ARM的总线方式和存储器结构层次:
异常中断的优先级,5级流水线的ARM组织、ARM处理器支持以下6种数据类型。8位有符号、小端,、大端,网络的的方式是用大端。
ARM指令集:
LINUX的常用文件系统:
EXT2/EXT3 ROMFS RAMDISK CRAMFS JFFS/JFFS2 TMPFS YAFFS
Uboot的移植和编译和生成:
uboot。bin的生成——分两布 对board的配置 、进行编译生成
uboot 的Makefile的分析
uboot有两种操作模式:启动加载和下载
控制终端:secureCRT 源代码编辑器:socuseinsight windows下的虚拟环境cygwin flashxp
内核配置编译
Linux启动流程分析:
ramdisk的制作 linux内核的移植和boot级参数的设置 startknel()初始化函数
linux内存管理:
阅读(1079) | 评论(0) | 转发(0) |