zoukankan      html  css  js  c++  java
  • 应用目录S5PV210的BL1应用

    本文是一篇关于应用目录的帖子

        

    准备分析

        


            经过了对NandFlash的操作现在可以熟练的读NandFlash了,这时候单独将启动代码整理成BL1就显得很必要了,不然全部程序会显得很乱,当前的裸机就可以只斟酌自己,不必斟酌启动的事了

        。

        

    应用和目录        

    资源工具

            同《  S5PV210的LED应用(一)
            NandFlash: K9GAG08U0F (2G)
            对应代码:9.bl1


    着手写程序

            (1) 在工程目录添加一个新目录名字为BL1。
            (2) 将mkv210_image.c移动到BL1目录中。
            (3) BL1.bin须要的目标文件有start.o nand_cp.o以及uart.o
            (4) 由于BL1中将不再链接main.o,那么start.o在链接时候就会找不到“main”这个在main.c中的符号。这里可以在nand_cp.c中以弱符号的方法在nand_cp.c添加一个空的main函数,内容如下:
             // BL1 main()
             void main(void) __attribute__((weak, alias("__main")));
             void __main(void) {};
              这个程序不会被执行,所以没有任何的影响。
            (5) BL1标中添加Makefile,内容如下:

        

        


        

    all: BL1.bin

        


        

    BL1.bin: start.bin

        

            gcc mkv210_image.c -o mkv210

        

            ./mkv210 start.bin BL1.bin

        

            cat BL1.bin ../210.bin  > ../BL1210.bin

        

            

        

    start.bin:

        

            cp ../start.o ../nand_cp.o ../uart.o ./
        每日一道理
    灯,带有一种明亮的光,每当深夜来临,是它陪伴着你,如此默默无闻。它是平凡的,外表华丽与否,那都是一样的,珍珠点缀,水晶加饰的灯它只能用以装饰,来满足人们的虚荣心,比起这,普普通通的日光灯是幸运的,因为它照明的本性没有改变,如同生活中的一部分人平平凡凡却实实在在。

        

            arm-linux-ld -o start.elf start.o nand_cp.o uart.o

        

            arm-linux-objcopy -O binary start.elf start.bin

        

            arm-linux-objdump -D start.elf > start_elf.dis

        


        


        

    clean:

        

            rm *.o *.elf *.bin *.dis mkv210 -f

        

            (6) 在工程目录中的Makefile中去掉对mkv210的操作,将可执行文件同一命名为210.bin,这样在BL1目录中的Makefile中会主动将BL1.bin和210.bin制作在一起命名为BL1210.bin。Makefile内容如下:

        

        

    all:210.bin

        

            make -C ./BL1

        


        

    led.bin: start.o main.o nand_cp.o uart.o

        

            arm-linux-ld -Ttext $(CONFIG_SYS_TEXT_BASE) -o led.elf $^

        

            arm-linux-objcopy -O binary led.elf led.bin

        

            arm-linux-objdump -D led.elf > led_elf.dis

        


        

    210.bin: led.bin

        

            cp led.bin 210.bin

        

            

        

    %.o : %.S

        

            arm-linux-gcc -o $@ $< -c -fno-builtin

        


        

    %.o : %.c

        

            arm-linux-gcc -DCONFIG_SYS_TEXT_BASE=$(CONFIG_SYS_TEXT_BASE) -o $@ $< -c -fno-builtin

        


        

    clean:

        

            rm *.o *.elf *.bin *.dis mkv210 -f

        

            make clean -C ./BL1/

        

        




    下载运行

            同《  S5PV210的LED应用(一)
            下载文件:BL1210.bin

    运行调试
           
            程序可以运行起来了,如图所示:
    应用和目录

             代码目录结构清晰很多:
    应用和目录

    遗留问题
      
            1.这个BL1也算是V1.0版本的,往后再丰富一点,让其更通用一点。
            2.COPY_BL2_SIZE的大小不同一,现在是8k。
            3.还没有涉及到DRAM。 

    文章结束给大家分享下程序员的一些笑话语录: N多年前,JohnHein博士的一项研究表明:Mac用户平均IQ要比PC用户低15%。超过6000多的参加者接受了测试,结果清晰的显示IQ比较低的人会倾向于使用Mac。Mac用户只答对了基础问题的75%,而PC用户却高达83%。

    --------------------------------- 原创文章 By
    应用和目录
    ---------------------------------

  • 相关阅读:
    get和post的区别
    关于webWorker的理解和简单例子
    JavaScript停止事件冒泡和取消事件默认行为
    深入理解js构造函数
    js之yeild
    文件组织方式
    HTML5新增的标签和属性归纳
    css3新增属性
    CSS3 transition介绍
    Mysql安装
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3112800.html
Copyright © 2011-2022 走看看