嵌入式linux

时间:2021-11-11 04:45:52

嵌入式开发
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的更多相关文章

  1. 嵌入式 Linux下永久生效环境变量bashrc

    嵌入式 Linux下永久生效环境变量bashrc 1) .bashrc文件 在linux系统普通用户目录(cd /home/xxx)或root用户目录(cd /root)下,用指令ls -al可以看到 ...

  2. 制作自己的嵌入式Linux电脑&lowbar;转

    制作自己的嵌入式Linux电脑 http://os.51cto.com/art/201409/450334.htm 原文链接:http://blog.jobbole.com/75414/ 包含器件选择 ...

  3. 用Windows&plus;VirtualBox搭建嵌入式Linux开发环境

    Windows+VirtualBox的嵌入式Linux开发环境的搭建 最近一直在学习Linux的设备驱动编写,一直是在物理机上安装的Ubuntu进行的,但是在Ubuntu12.04的系统中,已经不能用 ...

  4. 嵌入式Linux的调试技术

    本节我们研究嵌入式Linux的调试技术,对于复杂的Linux驱动及HAL等程序库,需要使用各种方法对其进行调试.刚开始讲了打印内核调试信息:printk,这个函数的用法与printf函数类似,只不过p ...

  5. 嵌入式linux应用程序移植方法总结

    嵌入式linux应用程序移植方法总结 前段时间一直在做openCapwap的移植和调试工作,现在工作已接近尾声,编写本文档对前段工作进行一个总结,分享下openCapwap移植过程中的经验和感悟.江浩 ...

  6. 驱动开发学习笔记&period; 0&period;06 嵌入式linux视频开发之预备知识

    驱动开发读书笔记. 0.06  嵌入式linux视频开发之预备知识 由于毕业设计选择了嵌入式linux视频开发相关的项目,于是找了相关的资料,下面是一下预备知识 UVC : UVC,全称为:USB v ...

  7. 嵌入式linux开发环境构建

    2.1硬件环境构建 2.1.1主机与目标板结合的交叉开发模式 在主机上编辑.编译软件,然后再目标办上运行.验证程序. 对于S3C2440.S3C2410开发板,进行嵌入式Linux开发时一般可以分为以 ...

  8. 嵌入式Linux驱动开发日记

    嵌入式Linux驱动开发日记 主机硬件环境 开发机:虚拟机Ubuntu12.04 内存: 1G 硬盘:80GB 目标板硬件环境 CPU: SP5V210 (开发板:QT210) SDRAM: 512M ...

  9. 嵌入式Linux开发板

    嵌入式Linux开发板开发介绍: iTOP-4412嵌入式Linux开发板搭载三星Exynos四核处理器,配备1GB内存,4GB固态硬盘EMMC存储,独家配备三星S5M8767电源管理,配备Andro ...

  10. 嵌入式Linux 修改启动LOGO

    1.嵌入式 Linux LOGO显示原理      嵌入式Linux是直接在FrameBuffer的基础上.直接显示一个ppm格式的图象.     它 kernel/drivers/video/fbc ...

随机推荐

  1. REST服务返回自定义的HttpResponseMessage

    WebApi框架中对资源的操作,都是通过其Controller提供的各种方法(GET,POST,PUT,DELET等)来实现,而这些方法的返回信息有以下几种形式: 方法返回类型 HttpRespons ...

  2. 自定义View&lpar;9&rpar;关于onLayout

    1,何时被调用 当外层容器组件调用其内部组件的layout(l,r,t,b)时,内部组件的onLayout就被调用.与onMeasure类似. 2,注意 onLayout对ViewGroup及子类才有 ...

  3. CICS定时

    F+14个0-----给CICS传参数FM CICSServer svr;        svr.GetRetCommData(&pMsgStr, &chMsgType); CICSS ...

  4. java中调用本地动态链接库(&ast;&period;DLL)的两种方式详解和not found library、打包成jar&comma;war包dll无法加载等等问题解决办法

    我们经常会遇到需要java调用c++的案例,这里就java调用DLL本地动态链接库两种方式,和加载过程中遇到的问题进行详细介绍 1.通过System.loadLibrary("dll名称,不 ...

  5. 扫雷游戏制作过程(C&num;描述):第四节、菜单操作

    前言 这里给出教程原文地址. 该项目已经放在github上托管. 菜单操作 我们现在的程序单击菜单的时候不会有任何反应,这一节我们主要介绍菜单的相关代码,使得菜单能够正常使用. 现在我们希望在对应级别 ...

  6. Perl的特殊代码块:BEGIN、CHECK、INIT、END和UNITCHECK

    这是5个特殊的代码块.要理解这几个块,关键在于几个时间点: (1).程序编译期间 (2).程序执行期间 (3).程序执行结束但还未退出期间 BEGIN块 BEGIN块是在程序编译期间执行的,也就是上面 ...

  7. nginx禁止未绑定域名访问返回444

    来源于:http://blog.csdn.net/qq435792305/article/details/8298244

  8. JDK8 Lambda表达式对代码的简化

    只是举个例子: public class LambdaDemo { public static String findData( String name , LambdaInterface finde ...

  9. Spring Boot 获得帮助

    如果你在使用 Spring Boot 的时候遇到了问题,我们很乐意为你提供帮助. 请访问 IX. How-to指南 中的内容 — 在这个指南中为常见的多数问题提供了解决方案. 学习更多有关 Sprin ...

  10. cdn网络加速

    CDN全称Content Delivery Network,即内容分发网络.其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定.通过在网络各处放置节点服 ...