嵌入式linux
嵌入式开发
1.1开发板和宿主机的连接方法:
cable 电缆
可以通过 串口 网络 以及 JTGA等连接方式。
JTAG:
国际标准测试协议
对芯片内部测试对flash烧写。注意JTAG 是一种协议,具体去实现这个协议时靠的就是下面的工具
JTAG连接-并口笔记本想要用并口就用PCMCIA并口转接卡。
JTAG连接-usb usbJTAG调试器(Jlink)
同时要想使用这个连接工具就必须安装驱动。
1.2 开发板系统安装
1.2.1开发板上面有俩快flash ,首先我们用Jlink连接,然后我们将flash擦除
然后我们烧入bootloader 【引导装载】相当于计算机的bios
安装dnw工具,usb驱动,同时有配套的dnw软件主要用于下面的系统安装加载传输文件
1.2.2 linux系统的安装
a.分区
b.安装bootloader
c.安装linux内核
d.安装文件系统
1.2.3 wince 安装
a.安装wince的bootloader
b.安装bootlogo
c.安装wincea镜像
最后总结:大致过程是首先向开发板烧入一个bootloader到flash,然后在这个bootloader的引导下去安装其他的操作系统到另一块flash
1.2.4 裸机程序体验
在不安装系统的条件下体验程序。
2.1 linux 系统定制安装
虚拟机安装linux ,使用的是vmware
vm版本可以看help
选择一些软件。
Linux 的目录结构
/bin 存放常用命令
/boot 存放启动程序
/dev 存放设备文件
/etc 存放启动,关闭,配置程序与文件
/home 用户工作根目录
/lib 存放共享链接库
/root 超级用户工作目录
/sbin 系统管理员的常用管理程序
/tmp 存放临时文件
/lost+found 系统异常时,用于保存部分资料。
linux 命令 常用的命令也就20多个
1.登录的时候输入用户名 密码
用户的信息放在/etc/passwd里面放有用户的信息。
而用户的密码真正放到了/etc/shadow(阴影)
在passwd里面
第一个字段:用户名称、
第二个字段:密码标志(如果是x,表示有密码且密码在shadow里)
第三个字段:UID
0: 超级用户
1-499: 系统用户
500-65535:普通用户
第四个字段:组id
用户一旦建立就会自动建一个组
第六个字段:在普通用户:/home/用户名/
超级用户:/root/
第七个字段:shell(命令解释器 )登录后的shell
一切详细的帮助信息在man手册。
操作方法是:man 5 passwd
2.linux下面的用户有俩类用户,超级用户 root ,超级用户的提示符是# 而普通用户是$.
3.图形化界面和命令界面的切换 可以用 ALT+CTRL +F1 或者F7
3.linux系统添加用户
useradd 【选项】用户名
修改密码
passwd 用户名 然后提示输入密码
切换用户
su 【选项】 用户名
关机
shutdown -t +时间
shutdown now 立刻关机
cp 拷贝命令
1.cp【选项】源文件、目录[空格]目标文件、目录
2.cp-r 拷贝目录的时候一定要加 -r
mv 剪切
基本和cp一样 剪切目录不需要加 -r
更改文件名 也用mv
mv 1.txt 2.txt 更改1.txt 为2.txt
rm 删除文件
rm -f 不提示删除force 强制
rm dir -r 删除目录
rm dir -r -f 不提示删除
mkdir 创建目录
cd 目录名
cd - 回到刚才来的目录
pwd 显示当前在哪个目录
ls显示
tar打包不等于压缩
打包是将文件或者目录打成一个文件
1.tar cvf tmp.tar/home/tmp
将home/tmp目录下的所有文件和目录打包为tmp.tar
chmod 777 改变权限
运行程序 ./ 程序名
2.2 vi的使用
vi有三种工作模式
命令行工作模式
插入模式
底行模式
gcc 全称(gnu c compiler)非常优秀的编译器。
四个阶段
2.3linux系统管理
tftp服务器
tftp服务器是什么
嵌入式开发中有宿主机和目标机
理解即可
宿主机是嵌入式开发过程中软件的开发,编译实用的pc是宿主机,而真正执行嵌入式程序的硬件平台是目标机
Tftp服务器是工作于宿主机上的软件,主要提供对目标机的主要映像文件的下载工作。
2.3.1tftp服务器-安装
使用RPM包安装tftp-server
1.如果利用如下命令能够看到服务已启动。则不用安装
2.3.2nfs 网络文件系统(network file system)相当于windows的共享目录
2.3.3samba (shangba)
linux与linux系统自己的共享是通过nfs,windows与windows之间通过共享目录实现共享 ,那么linux与windows之间共享是通过什么那?——就是Samba
系统设置
set up
前面有星号表示会随着系统启动
2.3.4wireshark
(2006年之前叫Ethereal)
可以在linux和windows上使用的开源网络协议分析器
wireshark 包的安装
运行wireshark 可以在控制台里面直接输入wireshark
3.1shell编程
什么是shell shell是命令解析器。
shell脚本是什么那?
shell脚本相当于windows的批处理shell脚本包含了一系列的文本文件。运行脚本文件中包含的命令将会得到执行。shell脚本的运行是sh hello.sh
shell脚本的格式
#!/bin/sh 指定命令解析器、
shell脚本编程 注释以#开头
shell中的变量无类型,并且也无需声明而且所有变量是由字符串组成
#!/bin/sh
#set variable a
a="hello world"
# print a
echo "A is:"
echo $a
运行结果
A is hello word
# 第二个例子
num=2
echo"this is the $numnd"
运行结果是
this is the
shell 脚本把numnd当作变量,但是没有这个变量
如果想输出this is the 2nd
可以这样写
num=2
echo "this is the${num}nd"
显示this is the 2nd
当前后都有字符串的时候,记得加{}来区分变量。
例子3
默认变量(记住特点是变量)
$#:传入脚本的命令行参数个数
$*:所有命令行参数值,在各个参数值之间留有空格
$0:命令本身(shell文件名)
$1:第一个命令行参数
$2:第二个命令行参数
//记住,这是传入参数,也就是输入参数,相当于C语言的scanf输入参数。
例子3
#!/bin/sh
echo"number of vars:"$# 结果4
echo"values of vars:"$* 结果1 2 3 4
echo"values of var1:"$0 结果 s3
echo"values of var2:"$1 结果 1 对应第一个参数
echo"values of var3:"$3 结果 3 对应输入的第三个参数
运行 ./s3 1 2 3 4
局部变量
C语言中位于函数内部的变量是局部变量
变量首次赋值时加上local关键字就可以声明一个局部变量
#!/bin/bash
hello="var1"
echo $hello
function fun1{
local hello="var2"//局部变量
echo $hello
}
func1
echo $hello
var1 var2 var1
#!/bin/bash
hello="var1"
echo $hello
function fun1{
hello="var2"//仍是全局变量
echo $hello
}
func1
echo $hello
var1 var2 var2
区别C语言,C语言中只要是函数内就是局部变量,而这里不是。
变量赋值 “=”
1.注意在shell脚本编程的时候等号左右两边不能有空格。
2.BASH中的语句结尾不需要分号。
if语句
if[条件]
then
语句
fi
或者
if[条件]
then
语句
else
语句
fi
或者
if[条件]
then
语句
else if[条件]
then
语句
else
语句
fi
fi
比较
比较操作 整数操作 字符串操作
相同 -eq =
不同 -ne !=
大于 -gt >
小于 -lt <
大于或等于 -ge
小于或等于 -le
为空 -z
不为空 -n
<!-- UY BEGIN -->
<div id="uyan_frame"></div>
<script type="text/javascript" src="http://v2.uyan.cc/code/uyan.js?uid=1910227"></script>
<!-- UY END -->
嵌入式linux的更多相关文章
- 嵌入式 Linux下永久生效环境变量bashrc
嵌入式 Linux下永久生效环境变量bashrc 1) .bashrc文件 在linux系统普通用户目录(cd /home/xxx)或root用户目录(cd /root)下,用指令ls -al可以看到 ...
- 制作自己的嵌入式Linux电脑_转
制作自己的嵌入式Linux电脑 http://os.51cto.com/art/201409/450334.htm 原文链接:http://blog.jobbole.com/75414/ 包含器件选择 ...
- 用Windows+VirtualBox搭建嵌入式Linux开发环境
Windows+VirtualBox的嵌入式Linux开发环境的搭建 最近一直在学习Linux的设备驱动编写,一直是在物理机上安装的Ubuntu进行的,但是在Ubuntu12.04的系统中,已经不能用 ...
- 嵌入式Linux的调试技术
本节我们研究嵌入式Linux的调试技术,对于复杂的Linux驱动及HAL等程序库,需要使用各种方法对其进行调试.刚开始讲了打印内核调试信息:printk,这个函数的用法与printf函数类似,只不过p ...
- 嵌入式linux应用程序移植方法总结
嵌入式linux应用程序移植方法总结 前段时间一直在做openCapwap的移植和调试工作,现在工作已接近尾声,编写本文档对前段工作进行一个总结,分享下openCapwap移植过程中的经验和感悟.江浩 ...
- 驱动开发学习笔记. 0.06 嵌入式linux视频开发之预备知识
驱动开发读书笔记. 0.06 嵌入式linux视频开发之预备知识 由于毕业设计选择了嵌入式linux视频开发相关的项目,于是找了相关的资料,下面是一下预备知识 UVC : UVC,全称为:USB v ...
- 嵌入式linux开发环境构建
2.1硬件环境构建 2.1.1主机与目标板结合的交叉开发模式 在主机上编辑.编译软件,然后再目标办上运行.验证程序. 对于S3C2440.S3C2410开发板,进行嵌入式Linux开发时一般可以分为以 ...
- 嵌入式Linux驱动开发日记
嵌入式Linux驱动开发日记 主机硬件环境 开发机:虚拟机Ubuntu12.04 内存: 1G 硬盘:80GB 目标板硬件环境 CPU: SP5V210 (开发板:QT210) SDRAM: 512M ...
- 嵌入式Linux开发板
嵌入式Linux开发板开发介绍: iTOP-4412嵌入式Linux开发板搭载三星Exynos四核处理器,配备1GB内存,4GB固态硬盘EMMC存储,独家配备三星S5M8767电源管理,配备Andro ...
- 嵌入式Linux 修改启动LOGO
1.嵌入式 Linux LOGO显示原理 嵌入式Linux是直接在FrameBuffer的基础上.直接显示一个ppm格式的图象. 它 kernel/drivers/video/fbc ...
随机推荐
- git操作??
一直在搞git,但是难度真的很大,我的英语超烂,而申请git账号时全部是英文的,我就拿着翻译有道词典,必应.进行翻译,一个一个单词的往上面打,一张网页能翻译一下午,最后还是不知道应该具体怎么去操作,所 ...
- BackgroundWorker的使用
一个程序中需要进行大量的运算,并且需要在运算过程中支持用户一定的交互,为了获得更好的用户体验,使用BackgroundWorker来完成这一功能. 基本操作: bgw.RunWorkerAsync ...
- Python快速建站系列-Part.One-组装开发环境
|版权声明:本文为博主原创文章,未经博主允许不得转载. 源代码都在github上:SmallStudyStation 现在是个demo,但回来会租个服务器,等功能完善了放到服务器上挂着,域名jusot ...
- mongo语句优化分析
参考原文:http://www.mongoing.com/eshu_explain3 理想的查询状态由以下两种 普通查询: nReturned=totalKeysExamined & tota ...
- Android应用开发中的风格和主题(style,themes)
http://www.cnblogs.com/playing/archive/2011/04/01/2002469.html 越来越多互联网企业都在Android平台上部署其客户端,为了提升用户体验, ...
- c 指针(一)
一:什么是指针 变量i 的存储地址为P(假设为2000),*P 为指针变量 一个变量的地址称为该变量的“指针”.如果有另一个变量专门存放另一变量的地址(指针),则它称为“指针变量”. 指针是一个地 ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON OverpaintRegion1
zw版[转发·台湾nvp系列Delphi例程]HALCON OverpaintRegion1 unit Unit1;interfaceuses Windows, Messages, SysUtils, ...
- 给Debian安装Xfce桌面
1.sudo apt-get install xorg xdm xfce4 2.vi ~/.xinitrc,然后输入:exec xfce4,在终端输入startx命令后就能进入xfce4,或直接在 ...
- 累加两个php数组,键相同的累加,不同的合并
1. $arr1=array('name'=>33,'type'=>1); $arr2=array('name'=>33,'price'=>200); $res=array() ...
- DirectX 绘制
先上图.后面会描写 ,细节