zoukankan      html  css  js  c++  java
  • 嵌入式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 -->


    声明:     博主是原悦乎教程网站长,博主写博客花费了大量精力,我的博客欢迎转载共享,但在 同时,希望保留我的署名权,不得用于商业用途。转载时请注明转载地址。未经特别说明,均采用“署名-非商业性使用-禁止演绎 2.5 中国大陆”授权。任何违反本协议的行为均属于非法行为。
  • 相关阅读:
    Nginx降权启动
    Tomcat降权启动
    【转载】XSS学习笔记
    仪仗队(容斥,欧拉,打表)
    2012蓝桥杯
    HPU周赛题目解析
    蓝桥杯真题集2011
    cf公式专场-续
    24点游戏&&速算24点(dfs)
    Parallelogram Counting(平行四边形个数,思维转化)
  • 原文地址:https://www.cnblogs.com/zhangfeionline/p/5280764.html
Copyright © 2011-2022 走看看