wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7458|回復: 1
收起左側

u-boot 第一階段啟動流程

[復制鏈接]
ID:72519 發表于 2015-1-23 01:29 | 顯示全部樓層 |閱讀模式
一、u-boot啟動流程

        第一步:
        S5pc100中IROM中的代碼 自動將NAND FLASH的前16KB拷貝到SRAM的0x34000 ,然后bootload的第一部分開始執行,初始化DRAM。
        
        第二步:
        bootload將nandflash中所有的bootload拷貝到DRAM中。

        第三步:
        跳轉到DRAM中開始執行bootload的第二部分代碼。


二、第一階段啟動流程

裁剪之后的start.S文件如下:
  1.     .globl _start
  2.     _start: b        reset

  3.     /***********************************設置異常向量表***************************************/
  4.             ldr        pc, _undefined_instruction
  5.             ldr        pc, _software_interrupt
  6.             ldr        pc, _prefetch_abort
  7.             ldr        pc, _data_abort
  8.             ldr        pc, _not_used
  9.             ldr        pc, _irq
  10.             ldr        pc, _fiq

  11.     _undefined_instruction: .word undefined_instruction
  12.     _software_interrupt:        .word software_interrupt
  13.     _prefetch_abort:        .word prefetch_abort
  14.     _data_abort:                .word data_abort
  15.     _not_used:                .word not_used
  16.     _irq:                        .word irq
  17.     _fiq:                        .word fiq
  18.     _pad:                        .word 0x12345678 /* now 16*4=64 */

  19.     .balignl 16,0xdeadbeef

  20.     /**************************************設置異常向量表************************************/






  21.     _TEXT_BASE:
  22.             #TEXT_BASE 0x20f00000
  23.             .word        TEXT_BASE

  24.     _armboot_start:
  25.             #_start 0x20f00000
  26.             .word _start

  27.     /*
  28.     * These are defined in the board-specific linker script.
  29.     *鏈接腳本指定:
  30.     *__bss_start bss段起始地址
  31.     *__end       bss段結束地址
  32.     */
  33.     _bss_start:
  34.             .word __bss_start

  35.     _bss_end:
  36.             .word _end

  37.     /*
  38.     * the actual reset code
  39.     */

  40.     /******************************設置ARM核為SVC管理模式********************************/
  41.     reset:
  42.             /*
  43.              * set the cpu to SVC32 mode
  44.              * 切換ARM核到管理模式
  45.              */
  46.             mrs        r0, cpsr
  47.             bic        r0, r0, #0x1f
  48.             orr        r0, r0, #0xd3
  49.             msr        cpsr,r0

  50.     /*****************************設置ARM核為SVC管理模式*********************************/
  51.             







  52.             bl        cpu_init_crit
  53.             




  54.     /*********************************搬移u-boot到DRAM************************************/

  55.     #if  NOR FLASH 啟動         
  56.     relocate:                                @ relocate U-Boot to RAM
  57.             adr        r0, _start                @ r0 <- current position of code
  58.             ldr        r1, _TEXT_BASE                @ test if we run from flash or RAM
  59.             cmp        r0, r1                        @ don't reloc during debug
  60.             beq        stack_setup

  61.             ldr        r2, _armboot_start
  62.             ldr        r3, _bss_start
  63.             sub        r2, r3, r2                @ r2 <- size of armboot
  64.             add        r2, r0, r2                @ r2 <- source end address

  65.     copy_loop:                                @ copy 32 bytes at a time
  66.             ldmia        r0!, {r3 - r10}                @ copy from source address [r0]
  67.             stmia        r1!, {r3 - r10}                @ copy to   target address [r1]
  68.             cmp        r0, r2                        @ until source end addreee [r2]
  69.             ble        copy_loop

  70.     #else NAND FLASH 啟動
  71.             
  72.     relocate:                                @ relocate U-Boot to RAM
  73.             adr        r0, _start                @ r0 <- current position of code
  74.             ldr        r1, _TEXT_BASE        @ test if we run from DRAM or SRAM
  75.             cmp        r0, r1                        @ don't reloc during debug
  76.             beq        stack_setup
  77.             
  78.             ldr sp,_TEXT_BASE
  79.             
  80.             ldr r0,_TEXT_BASE        
  81.             mov r1,#0x0
  82.             mov r2,#0x50000

  83.             bl  copy_uboot_to_dram

  84.     #endif

  85.     /**************************搬移u-boot到DRAM************************************/







  86.     /**********************************設置棧空間****************************************/






  87.             /* Set up the stack */
  88.     stack_setup:
  89.             ldr        r0, _TEXT_BASE                @ upper 128 KiB: relocated uboot
  90.             sub        r0, r0, #CONFIG_SYS_MALLOC_LEN @ malloc area [1M + 128KB]
  91.             sub        r0, r0, #CONFIG_SYS_GBL_DATA_SIZE @ bdinfo   [128字節]
  92.             sub        sp, r0, #12                @ leave 3 words for abort-stack
  93.             and        sp, sp, #~7                @ 8 byte alinged for (ldr/str)d


  94.     /*******************************設置棧空間********************************************/



  95.     /**********************************清除BSS段*******************************************/

  96.             /* Clear BSS (if any). Is below tx (watch load addr - need space) */
  97.     clear_bss:
  98.             ldr        r0, _bss_start                @ find start of bss segment
  99.             ldr        r1, _bss_end                @ stop here
  100.             mov        r2, #0x00000000                @ clear value
  101.     clbss_l:
  102.             str        r2, [r0]                @ clear BSS location
  103.             cmp        r0, r1                        @ are we at the end yet
  104.             add        r0, r0, #4                @ increment clear index pointer
  105.             bne        clbss_l                        @ keep clearing till at end
  106.             

  107.     /*********************************清除BSS段*******************************************/







  108.     /***************************調到內存中執行第二階段****************************************/


  109.             //跳到內存中執行第二階段代碼
  110.             ldr        pc, _start_armboot        @ jump to C code

  111.     /************************調到內存中執行第二階段*******************************************/

  112.     _start_armboot: .word start_armboot






  113.     cpu_init_crit:
  114.             /*
  115.              * Invalidate L1 I/D:使cache無效
  116.              */
  117.             mov        r0, #0                        @ set up for MCR
  118.             mcr        p15, 0, r0, c8, c7, 0        @ invalidate TLBs
  119.             mcr        p15, 0, r0, c7, c5, 0        @ invalidate icache

  120.             /*
  121.              * disable MMU stuff and caches:關MMU
  122.              */
  123.             mrc        p15, 0, r0, c1, c0, 0
  124.             bic        r0, r0, #0x00002000        @ clear bits 13 (--V-)
  125.             bic        r0, r0, #0x00000007        @ clear bits 2:0 (-CAM)
  126.             orr        r0, r0, #0x00000002        @ set bit 1 (--A-) Align
  127.             orr        r0, r0, #0x00000800        @ set bit 12 (Z---) BTB
  128.             mcr        p15, 0, r0, c1, c0, 0

  129.             /*
  130.              * Jump to board specific initialization...
  131.              * The Mask ROM will have already initialized
  132.              * basic memory. Go here to bump up clock rate and handle
  133.              * wake up conditions.
  134.              */
  135.             mov        ip, lr                        @ persevere link reg across call
  136.             bl        lowlevel_init                @ go setup pll,mux,memory
  137.             mov        lr, ip                        @ restore link
  138.             mov        pc, lr                        @ back to my caller


  139.     lowlevel_init:
  140.             mov        r9, lr

  141.             /* r5 has always zero */
  142.             mov        r5, #0

  143.             ldr        r8, =S5PC100_GPIO_BASE

  144.             /* Disable Watchdog :關開門狗 */
  145.             ldr        r0, =S5PC100_WATCHDOG_BASE                @0xEA200000
  146.             orr        r0, r0, #0x0
  147.             str        r5, [r0]

  148.             /* setting SRAM */
  149.             ldr        r0, =S5PC100_SROMC_BASE
  150.             ldr        r1, =0x9
  151.             str        r1, [r0]


  152.             /* S5PC100 has 3 groups of interrupt sources */
  153.             ldr        r0, =S5PC100_VIC0_BASE                        @0xE4000000
  154.             ldr        r1, =S5PC100_VIC1_BASE                        @0xE4000000
  155.             ldr        r2, =S5PC100_VIC2_BASE                        @0xE4000000

  156.             /* Disable all interrupts (VIC0, VIC1 and VIC2) : 禁用中斷 */
  157.             mvn        r3, #0x0
  158.             str        r3, [r0, #0x14]                                @INTENCLEAR
  159.             str        r3, [r1, #0x14]                                @INTENCLEAR
  160.             str        r3, [r2, #0x14]                                @INTENCLEAR

  161.             /* Set all interrupts as IRQ */
  162.             str        r5, [r0, #0xc]                                @INTSELECT
  163.             str        r5, [r1, #0xc]                                @INTSELECT
  164.             str        r5, [r2, #0xc]                                @INTSELECT

  165.             /* Pending Interrupt Clear :清除基地址寄存器的值*/
  166.             str        r5, [r0, #0xf00]                        @INTADDRESS
  167.             str        r5, [r1, #0xf00]                        @INTADDRESS
  168.             str        r5, [r2, #0xf00]                        @INTADDRESS

  169.             /* for UART */
  170.             bl uart_asm_init

  171.             /* for TZPC */
  172.             bl tzpc_asm_init

  173.             
  174.             /* 系統時鐘初始化 */
  175.             bl        system_clock_init

  176.             /*內存控制器初始化*/
  177.             bl        mem_ctrl_asm_init


  178.     1:
  179.             mov        lr, r9
  180.             mov        pc, lr
復制代碼



總結:
        <1>設置異常向量表
        <2>設置ARM核為管理模式
        <3>使cache無效,關閉MMU
        <4>關閉看門狗
        <5>設置向量中斷控制器
                   [1]禁用所有的中斷
                   [2]設置所有的中斷都為IRQ異常
                   [3]清除向量地址寄存器

        <6>初始化串口引腳
        <7>系統時鐘初始化
        <8>初始化內存控制器
        <9>將u_boot搬移到內存
        <10>設置棧空間
        <11>清除BSS段
        <12>跳到內存中執行第二階段代碼[start_armboot]
回復

使用道具 舉報

ID:837593 發表于 2020-11-8 05:04 | 顯示全部樓層
51黑學,學習讓我快樂!!!!
回復

使用道具 舉報

無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
一本到av在线| 亚洲成精国产精品女| 国产日产高清欧美一区二区三区| 国产亚洲欧美日韩在线观看一区二区| 一区二区三区视频播放| 国产精品美女久久久久| 偷拍视频一区二区三区| 麻豆蜜桃在线观看| av电影一区| 久久人妻一区二区| 久久久综合免费视频| 中国人与牲禽动交精品| 亚洲天堂av在线播放| 亚洲美女在线观看| 日韩国产欧美精品在线| 亚洲精品99999| 日韩av影视在线| 亚洲美女精品久久| 一区二区三区视频在线| 国产小视频91| 久久精品青青大伊人av| 欧美日韩第一页| 97久久精品在线| 国产伦精品一区二区三区精品视频 | 午夜精品久久久内射近拍高清| 国产又粗又长又爽视频| 国产成a人亚洲精v品在线观看| 91免费国产精品| 国产91在线视频观看| 亚洲 中文字幕 日韩 无码| 最新中文字幕免费视频| 午夜激情影院在线观看| 妖精视频一区二区| 91精品久久久久久久久久久久| 91在线免费观看网站| 国产精品久久久久久久久久ktv| 亚洲一区二区自拍| 国产女人水真多18毛片18精品| 欧美下载看逼逼| 欧美日韩午夜爽爽| 国产91色在线观看| 五月天激情小说| 午夜激情视频在线播放| 国产成人愉拍精品久久 | 精品自拍视频| 欧美天堂影院| 一区二区三区在线观看免费| 亚洲欧洲美洲综合色网| 四虎精品在线| 黄色av网站在线免费观看| youjizz在线播放| 日本一级理论片在线大全| 蜜桃成人精品| 中文字幕在线播放| 欧美成人精品福利网站| 影音先锋5566资源网| 天天操夜夜操天天射| 真不卡电影网| 怡红院红怡院欧美aⅴ怡春院| 97久久香蕉国产线看观看| 亚洲午夜精品| 99精品在线免费在线观看| 久久国产一二区| 91视频www| 欧美日韩国产在线看| 精品久久久久一区| 欧美激情国产精品| 成人动漫视频在线观看免费| 亚洲精品网址| 欧美福利视频| 国产在线不卡一卡二卡三卡四卡| 久久伊人中文字幕| 婷婷激情综合网| 亚洲电影在线观看| 欧美黑人国产人伦爽爽爽| 亚洲综合第一页| 日本香蕉视频在线观看| 91黄色免费视频| 你懂的国产在线| 最近2018年在线中文字幕高清| 波多野结衣手机在线视频| 黄色毛片在线观看| 欧美xxxx网站| 一区在线免费| 欧美三级电影在线看| 色天使综合视频| 清纯唯美激情亚洲| 亚洲第一区色| 欧美国产日韩亚洲一区| 欧美一区二视频| 国内精品小视频| 亚洲日本japanese丝袜| 特级西西444www| 久久婷婷一区二区| 性欧美video另类hd3| 亚洲男人网站| 日韩免费精品| 蜜臀精品一区二区三区在线观看| 亚洲在线观看免费| 在线成人激情视频| 潘金莲一级淫片aaaaa| 亚洲精品一区二区三区影院忠贞| 老熟妇一区二区三区啪啪| 97精品高清一区二区三区| 男女污视频在线观看| 综合欧美精品| 久久久久欧美精品| 亚洲成在线观看| 日韩综合视频在线观看| 国内精品二区| 精品人妻一区二区乱码| 中文字幕免费播放| 男女午夜刺激视频| 日韩在线影院| 亚洲自啪免费| 欧美一区二区三区在线看| 午夜成人免费电影| 日韩有码视频在线| 欧美激情第一页在线观看| 曰本三级日本三级日本三级| 国产男人搡女人免费视频| 免费h网站在线观看| 中文在线字幕免费观看| 国产日韩欧美一区二区三区| 成人av在线播放网站| 7777女厕盗摄久久久| 国产成人久久精品| aaaaaa亚洲| 国产又粗又猛又黄视频| 91美女在线免费观看| 日韩伦理一区二区| 亚洲午夜久久久久久久| 久久一区精品| 亚洲视频 欧洲视频| 亚洲一级黄色片| 欧美日韩精品中文字幕一区二区| 特级西西人体4444xxxx| 69xxx视频hd| 国产福利视频在线| 国产精品magnet| 天天色图综合网| 国产成人一区二区三区电影| www.激情小说.com| 国产xxxx孕妇| 3d成人动漫在线| 欧美aⅴ99久久黑人专区| 亚洲综合激情网| 欧美亚洲在线播放| 波多野结衣电车痴汉| 久久久久无码国产精品| 国产秒拍福利视频露脸| 色婷婷在线播放| 国产午夜久久| 欧美酷刑日本凌虐凌虐| 不卡视频一区| 国产免费一区二区三区网站免费| 久久国产综合视频| 九九热线视频只有这里最精品| 极品尤物av久久免费看| 亚洲精品98久久久久久中文字幕| 精品卡一卡二| 日韩高清dvd碟片| 99热免费在线观看| 欧美挤奶吃奶水xxxxx| 中文字幕免费观看一区| 97se亚洲国产综合自在线| 久久精品99国产精品| 欧美日韩在线一区二区| 亚洲综合精品一区二区| 精品无码人妻一区| 国产精品剧情一区二区三区 | 99不卡视频| 福利片一区二区| 中文字幕中文在线不卡住| 午夜精品理论片| 波多野结衣中文字幕在线播放| 天堂中文在线www| 欧美精品高清| 久久综合久久综合九色| 久久久亚洲国产天美传媒修理工| xxxx一级片| 欧美日韩国产丝袜美女| 大量国产精品视频| 爆乳熟妇一区二区三区霸乳| 人人妻人人玩人人澡人人爽| 草草在线视频| 粉嫩av一区二区三区粉嫩| 日日骚久久av| 国产美女18xxxx免费视频| 亚洲国产成人在人网站天堂| 国产精品视频一区二区三区综合| 中文字幕 久热精品 视频在线| 国产a∨精品一区二区三区不卡| 极品白嫩丰满美女无套| 国产美女av| 91成人看片| 精品国产一区a| r级无码视频在线观看| 精品人妻一区二区三区蜜桃| 偷拍自拍在线看| 蜜桃在线一区二区| 女同一区二区免费aⅴ| 麻豆精品一区二区三区| www.日韩系列| 午夜不卡福利视频| 91p0rn永久地址| 国产一区毛片| 欧美日韩精品一区二区三区 | 激情小视频网站| 神马午夜在线观看| 久久精品国产福利| 国产精品久久久久9999吃药| 国产在线日韩在线| 国产 日韩 欧美 成人| 免费一级片在线观看| 全部a∨一极品视觉盛宴| 一区二区三区国产精华| 欧美一级一区二区| 夫妻免费无码v看片| 国产又爽又黄视频| 超碰成人免费| 99免费精品| 欧美丰满美乳xxx高潮www| 日日噜噜噜夜夜爽爽| 亚洲国产精品suv| 国产成人久久精品麻豆二区| 一区二区三区成人在线视频| 国产视频在线观看一区| 天天干天天色综合| 周于希免费高清在线观看| 国产精品久久久久久户外露出| 国产精品初高中精品久久| 草莓视频18免费观看| 欧产日产国产精品视频| 亚洲精品水蜜桃| 玛丽玛丽电影原版免费观看1977| 99视频国产精品免费观看a| 欧美综合影院| 日韩欧美在线一区| 蜜臀av无码一区二区三区| 国内一区二区三区精品视频| 国产精品91一区二区三区| 亚洲人在线视频| 蜜桃精品成人影片| 免费在线看v| 99久精品国产| 久久av二区| 亚洲爱爱天堂| 大胆日韩av| 中国人与牲禽动交精品| 国产毛片久久久久久久| 香蕉视频免费在线播放| 国产女同性恋一区二区| 欧洲精品在线一区| 最好看的2019的中文字幕视频| 天天综合成人网| 高清免费观看在线| 国产成人亚洲综合色影视| 91久久精品美女| 国产精品怡红院| 国产成人一二| 日韩精品免费观看| 蜜臀av一区二区三区有限公司| 成人免费在线电影| 国产午夜精品一区二区三区四区| 欧美午夜精品理论片a级大开眼界| 亚洲色图另类图片| 99久久99视频只有精品| 另类色图亚洲色图| 欧美激情图片小说| 成人av观看| 欧美精品777| 日本wwwwwww| 黄网站在线播放| 欧美日韩激情小视频| 国产呦系列欧美呦日韩呦| 永久av免费在线观看| 传媒av在线| 99久久免费视频.com| 精品国产福利| 色悠久久久久综合网小说| 欧美.www| 欧美在线视频观看免费网站| 欧美另类高清videos的特点| 天天天天天天操| 欧美私人啪啪vps| 欧美在线三级电影| 欧美激情在线有限公司| 欧美四级电影在线观看| 99热免费精品在线观看| 风间由美久久久| 波多野洁衣一区| 成人黄色视屏网站| 亚洲午夜视频| 国产精品777| 99久久久久成人国产免费| 九九久久精品| 欧美高清第一页| 91国在线视频| 亚洲国产一区二区三区在线播放| 5252色成人免费视频| 国产女人18毛片水真多| 亚洲九九在线| 国产欧美日韩91| 中文字幕三区| 亚洲综合好骚| 精品免费国产| eeuss影院第1页在线| 91美女片黄在线观看| 一二三四中文字幕| 男女爱爱福利视频| 天天草夜夜草| 国产精品无人区| 国产日产欧美视频| 日韩大胆视频| 亚洲国产精品尤物yw在线观看| 亚洲欧美自拍另类日韩| www.91在线| 欧洲日韩一区二区三区| 国产美女免费网站| 深夜福利亚洲| 久久激情视频久久| 伊人成人在线观看| 国户精品久久久久久久久久久不卡| 亚洲va欧美va在线观看| 国产浴室偷窥在线播放| 精品一区二区在线播放| 正在播放一区二区三区| 黄污在线观看| 欧美日韩在线看| 亚洲国产欧美一区二区三区不卡| 国产午夜福利一区| 玖玖精品在线| 色偷偷91综合久久噜噜| 一二三区在线播放| 国内一区二区三区| 久久久久se| 五月伊人六月| 狠狠躁夜夜躁人人爽天天天天97 | 欧美精品99久久| 色影视在线观看| 欧美大片在线观看一区二区| 欧美性猛交bbbbb精品| 欧美日本久久| 欧美日韩国产综合视频在线| 91天堂在线| 欧美综合欧美视频| 国产无遮挡免费视频| 影视一区二区| 欧美一区三区二区在线观看| 印度午夜性春猛xxx交| 欧美中文一区二区| 99久久无色码| 神马午夜dy888| 欧美性受xxxx| 日本一区二区不卡在线| 五月激情综合| 国产99在线播放| 亚洲精品少妇久久久久久| 欧美无人高清视频在线观看| www..com国产| 午夜在线精品| 久久久久久www| 97人人在线视频| 成人444kkkk在线观看| 成人免费淫片视频软件| 亚洲 国产 欧美 日韩| 国产成人午夜精品5599| 蜜桃免费在线视频| 国产另类xxxxhd高清| 欧美高清一级大片| 精品一区二区三区在线观看l | 国产精品久久一区主播| 免费网站看黄yyy222| 亚洲一区二区三区四区的| 第一次破处视频| 日韩毛片视频| 欧美午夜欧美| 日本片在线观看| 久久91精品国产| 一二三四视频免费观看在线看 | 日韩一卡二卡三卡四卡| 亚洲av无码国产综合专区 | 亚洲精品一二三四五区| 国产精欧美一区二区三区蓝颜男同| 欧美超级乱淫片喷水| 韩国专线一区二三区| 亚洲黄色小视频| 久久久一二三区| 日韩精品欧美精品| 91制片厂毛片| 中文字幕日韩在线| 国产精品推荐精品| 二区三区在线播放| 中文字幕免费精品一区| 国产网站免费看| 狠狠色狠色综合曰曰| 无码人妻精品一区二区三区不卡| 国产一区视频导航| 99精品一区二区三区无码吞精|