• 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;

      

      

        

      

      

  • 相关阅读:
    深入理解计算机系统 第六章 存储器层次结构 第二遍
    深入理解计算机系统 第六章 存储器层次结构
    深入理解计算机系统 第八章 异常控制流 Part2 第二遍
    深入理解计算机系统 第八章 异常控制流 part2
    深入理解计算机系统 第八章 异常控制流 Part1 第二遍
    深入理解计算机系统 第八章 异常控制流 part1
    深入理解计算机系统 第三章 程序的机器级表示 Part2 第二遍
    深入理解计算机系统 第三章 程序的机器级表示 part2
    深入理解计算机系统 第三章 程序的机器级表示 Part1 第二遍
    深入理解计算机系统 第三章 程序的机器级表示 part1
  • 原文地址:https://www.cnblogs.com/mch0dm1n/p/5485748.html
Copyright © 2020-2023  润新知