zoukankan      html  css  js  c++  java
  • 015裸机开发快速体验

    1、裸机开发流程:

      (1)编写裸机程序;

      (2)调试逻辑程序;

      (3)生成二进制映象(编译,链接,格式转换);

      (4)烧写、运行二进制映象;

    2、安装交叉编译器

      将ARM_Tools压缩包复制到Linux系统,然后解压;解压之后可以看到该目录下的文件;

      

      

      然后安装工具链,其实就是解压;

      解压:arm-linux-gcc-4.3.2.tgz -C /  (通过-C指定解压到根目录中);根据解压的过程,可以知道是解压到了/usr/local/arm/4.3.2目录下;

      

      在/usr/local/arm/4.3.2/bin目录下,可以看到以后需要使用的工具;

      

      

      但是安装还没完成,还需要配置环境变量,否则会提示命令找不到;(如果使用命令时,前面加上完成路径,可以找到命令);

      Linux系统找某个命令是从PATH环境变量所列出来的路径中去找的;

      使用命令:vim /root/.bashrc修改环境变量;

      在打开的文件中,添加:export PATH=$PATH:/usr/local/arm/4.3.2/bin

      

      然后使用命令:source /root/.bashrc,使刚才配置的环境变量生效;

      

      这样,命令就可以使用了!不会再提示找不到命令了!

    3、编译裸机程序

      将代码复制到Linux系统中;

      

      使用命令:arm-linux-gcc -g -c led.S 进行编译,将裸机程序变成二进制映象文件,执行命令后,会有led.o产生;

      

      然后使用命令:arm-linux-ld -Tled.lds -o led.elf led.o 进行链接,会产生led.elf产生,但是它的格式不对,这个格式不能直接烧写到开发板中运行,必须转换成二进制的;

      

      然后使用命令:arm-linux-objcopy -O binary led.elf led.bin 会产生bin文件(二进制格式);

      

      

      当把一个程序变成一个可以烧写的映象时,需要运行这么多命令,如果经常先修改程序是不是每一次都得运行这么多命令?

      解决方法:写一个Makefile文件;

    4、Makefile

      首先运行命令:make clean,运行之后,可以看到led下的文件又恢复成最初状态;

      

      然后运行make命令,可以看到之前用许多命令产生的文件,同样产生出来了,但是仅仅运行了一个make命令,没像之前运行那么多命令;

      

    5、烧写程序到开发板

      开发板中的nand flash作用相当于硬盘,那么我们要运行的程序比如操作系统或自己编写的一些程序,我们希望最终都是把它们安装到nand flash中去,所以要明确,编译好的裸机程序最终是被烧写到nand flash中去运行;

      如何烧写到nand flash?2410的开发板会有nor flash;

      6410或210的开发板没有nor flash,但是可以有SD卡,要把裸机程序烧写到nand flash去,方法都是利用nor flash或者SD卡里的系统安装辅助程序来帮我们烧写;

      具体步骤:

      (1)将系统安装辅助程序烧写到SD卡中;

      (2)将SD卡插到开发板上;

      (3)设置开发板跳线从SD卡启动;

      (4)打开SecureCRT,查看串口号,设置串口连接;

      (5)将手指按在空格键上,打开开发板的电源,可以安装到SD卡中的mmc.bin程序运行的界面;

      

      (6)选择【1】,对nand flash进行格式化;

      

      (7)选择【3】,通过USB下载线,下载bin文件,烧写到开发板中;我们下载的是一个裸机程序,性质上和U_Boot一致,所以在接下来的菜单中,我们选择【1】;

      

      然后选择【1】;

      

      (8)打开虚拟机,在右下角,引入USB下载线(和之前的步骤相同);

      

      (9)然后安装USB下载线驱动;

      

      (10)然后运行命令:./dnw ../led/led.bin 50008000   将bin文件下载到内存中去;

      6410的开发板都是下载到50008000,内存中,然后辅助安装程序会自动从内存中渠道这个程序,然后烧写到nand flash中去;

      

      (11)最后设置开发板从nand flash启动(因为我们是把程序烧写到nand flash中去了),就会看到程序运行的结果;

      

      

    5、用到的工具:

      交叉工具链、链接器脚本、Makefile;

      

      

        

      

      

  • 相关阅读:
    word-wrap与word-break为长单词换行
    background-origin与background-clip的“区别”
    box-shadow
    你不知道的border-radius
    当document.write 遇到外联script
    getAttribute()方法的第二个参数
    Backbone.js入门教程第二版笔记(3)
    Backbone.js入门教程第二版笔记(2)
    php中的字符串常用函数(二) substr() 截取字符串
    php中类和对象的操作
  • 原文地址:https://www.cnblogs.com/mch0dm1n/p/5485748.html
Copyright © 2011-2022 走看看