Chinaunix首页 | 论坛 | 博客
  • 博客访问: 266184
  • 博文数量: 62
  • 博客积分: 1912
  • 博客等级: 上尉
  • 技术积分: 747
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-13 12:56
文章分类
文章存档

2014年(2)

2013年(1)

2012年(5)

2011年(27)

2010年(27)

分类: 嵌入式

2010-08-14 14:59:17

应用开发:

Clinux基本原理——作系统和模块的开发,系统的调用、操作系统下的应用程序的编译,执行程序、英语技术文档

内核和驱动开发:

C、精通内核实现原理,写的驱动程序是内核的一部分、常见的硬件平台、理解驱动实现原理,并对硬件电路有所熟悉

固件开发

芯片级的开发、c、汇编、硬件平台、精通逻辑分析仪、对OS底层

硬件开发

模电和数电 、有单片机和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 testC   cat  testSh  chmod 757 ttl.sh    /sh.sh

 

Shell 变量:环境变量和临时变量

Echo  echo PATH    echo $hostname  $localname  export path=/

用户定义的变量 myfile=/home/s123/testSh  echo $myfile  输入输出变量(1):read 命令 echo命令

Shell中的特殊字符:引号双引号 输入输出重定向符 cal>abc  cat abc 

注释,管道线,ps ps -e  |grep vsftpd  kill 1671  ps -e  ps -f (进程的执行路径)

Whlie truedo datesleepdone

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内存管理:
阅读(1027) | 评论(0) | 转发(0) |
0

上一篇:招聘需求

下一篇:SHEEL资料转载

给主人留下些什么吧!~~