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

    在嵌入式开发中,一般要制作内核映像和文件系统,同时须将可执行程序放置到文件系统中,并配置好相应的环境变。最后将内核和文件系统一起烧写到开发板上。

    嵌入式系统的概念:

    以应用为中心,以计算机技术为基础,且软硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

    嵌入式系统与普通PC机的对比:

    软件上的对比:

    名称

    嵌入式系统

    PC

    引导代码

    Bootloader引导,针对不同电路进行移植

    主板的BIOS引导,无须改动

    操作系统

    Linux、WinCE、VxWorks等,需要移植

    Windows、Linux等,无需移植

    驱动程序

    每个设备驱动针对电路板进行开发或移植,一般不能直接下载使用

    操作系统含有大多数驱动程序,或下载直接使用

    开发环境

    交叉编译

    本机编译

    仿真器

    需要

    不需要

    协议栈

    需要移植

    操作系统或第三方提供

    硬件上的对比:

    设备名称

    嵌入式系统

    PC

    CPU

    嵌入式处理器(ARM,MIPS,Score+

    CPU(Intel、AMD等)

    内存

    SDRAM芯片

    SDRAM或DDR内存条

    存储设备

    Flash芯片

    硬盘

    输入设备

    触摸屏,按键

    鼠标、键盘、麦克等

    输出设备

    LCD

    显示器

    接口

    MAX232等芯片

    主板集成

    其它设备

    音频芯片、USB芯片、网卡芯片等

    主板集成或外接卡

    嵌入式系统的开机顺序:

    Bootloader----kernel----rootfs

    PC机的开机顺序:

    BIOS----GRUB---kernel----rootfs

    嵌入式系统的开发流程:

    1、  开发目标硬件系统

    选择微处理器、Flash等。

    2、  建立交叉开发环境

    安装交叉编译工具链(如arm-linux-gcc)、设置好环境变量、配置串口通信工具(如超级终端、SecureCRT等)、配置网络通信工具(如NFS)等

    3、  开发Bootloader:

    移植Bootloader,如vivi

    4、  移植Linux内核

    如Linux2.4.18内核的移植

    5、  开发根文件系统

    如cramfs文件系统的制作

    6、  开发相关的硬件驱动程序

    如LCD、网卡、GPIO等

    7、  开发上层的应用程序

    如网络、GUI开发

    在第7步中,一般现在PC机上进行开发调试,然后通过交叉编译将代码编程成目标开发板可执行的程序。

    接下来我们先不直接烧写内核和根文件系统,而是将内核和文件系统放在PC中,在uboot中分别设置TFTP和NFS,

    这样uboot在运行时便可以通过TFTP将内核从PC机读入开发板ROM中,同时通过NFS访问PC机上设置的根文件系统。

    当程序运行无误时,再将内核和文件系统烧写到目标开发板。

  • 相关阅读:
    代码结构
    linux 启动盘制作multisystem
    cmake 各种语法的作用
    leetcode Longest Consecutive Sequence
    leetcode find kth
    leetcode twoSum
    S3pool pytorch
    数学:优化:拉格朗日乘子法
    Fisher判别分析(线性判别分析——LDA)
    数学:优化:牛顿法
  • 原文地址:https://www.cnblogs.com/fengkang1008/p/4746952.html
Copyright © 2011-2022 走看看