zoukankan      html  css  js  c++  java
  • 嵌入式开发

     嵌入式
     
    嵌入式开发 
    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 
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
      
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    software architect
    bmh算法
    程序动态切片技术研究
    chm便捷制作
    protobuffer源码解读
    字符串搜索算法比较
    软件架构重组:实践需要和当前做法
    游戏素材制作
    ea(enterprise architect) 相关资料集锦
    vs开启工程非常卡分析和解决
  • 原文地址:https://www.cnblogs.com/zhangfeionline/p/5438479.html
Copyright © 2011-2022 走看看