博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
嵌入式开发
阅读量:4841 次
发布时间:2019-06-11

本文共 3709 字,大约阅读时间需要 12 分钟。

 嵌入式
 
嵌入式开发 
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 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/zhangfeionline/p/5438479.html

你可能感兴趣的文章
把Nehe 纹理教程06,用freeImage改写
查看>>
python 中is和= = 的区别
查看>>
[C/C++]关于C++11中的std::move和std::forward
查看>>
图片显示、PNG透明
查看>>
Java的sql动态参数
查看>>
centos 6.5 双网卡 上网 virtualbox nat hostonly
查看>>
11大Java开源中文分词器的使用方法和分词效果对比
查看>>
解题报告 Valentine‘s seat
查看>>
反射动态创建不同的Processor
查看>>
函数中对象名的传参形式
查看>>
PHP基础知识
查看>>
Codeforces Round #480 (Div. 2)
查看>>
codeforce 1059E Split the Tree
查看>>
【读书笔记-数据挖掘概念与技术】数据预处理
查看>>
进度条第八周
查看>>
简单BFS POJ 3126 Prime Path
查看>>
运行第一个OpenCV程序
查看>>
算法笔记_003:矩阵相乘问题【分治法】
查看>>
算法笔记_017:递归执行顺序的探讨(Java)
查看>>
牛顿法与拟牛顿法学习笔记(四)BFGS 算法
查看>>