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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7491|回復: 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]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:837593 發表于 2020-11-8 05:04 | 只看該作者
51黑學,學習讓我快樂!!!!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
国产精品区二区三区日本| 国产免费一区二区三区四区五区| 国产一区二区高清不卡| 亚洲精品之草原avav久久| 成人欧美一区二区三区视频网页| 欧美激情视频一区二区三区免费| 625成人欧美午夜电影| 欧美高潮视频| 在线电影中文字幕| 中文字幕一区在线播放| 97精品电影院| 97视频一区| 国产在线观看av| 天天碰夜夜操| 男人操女人免费网站| 黄色一级视频免费| 亚洲av无一区二区三区久久| 日韩a级黄色片| 亚洲综合中文字幕在线观看| 欧美精品免费看| 欧美va在线播放| 精品久久久久久久久久| 久久奇米777| 青青草成人在线观看| 日韩一区自拍| 香蕉大人久久国产成人av| 欧美1—12sexvideos| 亚洲裸体视频| 97影院理论片在线播放| 国产麻豆视频免费观看| 国产视频手机在线观看| 四虎精品永久在线| 天天鲁一鲁摸一摸爽一爽| 亚洲一区和二区| 日韩黄色片视频| 国产麻豆电影在线观看| 黄色一区三区| 亚洲aⅴ日韩av电影在线观看| 久久久免费电影| 正在播放欧美视频| 亚洲电影免费观看高清完整版在线| 欧美日韩在线第一页| 日韩理论片在线| 久久久亚洲午夜电影| 国产精品性做久久久久久| 欧美亚洲自偷自偷| 亚洲大胆av| 日韩片欧美片| 人人狠狠综合久久亚洲婷| 鲁大师精品99久久久| 91精品一区| 欧美高清影院| 欧美亚洲综合视频| 久久精品超碰| 黑人一区二区三区| 国产极品久久久久久久久波多结野| 欧美videos另类精品| 91小视频xxxx网站在线| 在线视频国产区| 1区2区在线观看| 免费黄网在线观看| 日韩免费性生活视频播放| 欧美三级一区二区| 欧美日韩精品一区二区三区四区 | 免费看日批视频| 国产精品成人国产乱| 久久伊人成人网| 久久久久久激情| 日韩欧美大片在线观看| 国产一级免费观看| 天堂中文字幕在线观看| 无码人妻精品一区二区蜜桃色欲 | 黑人玩欧美人三根一起进| 91高清在线观看视频| av岛国在线| 欧美aaa大片视频一二区| а天堂中文最新一区二区三区| 成人免费91| 老牛影视av一区二区在线观看| 精品一区免费| 亚洲国产一区二区三区在线播放| 欧美在线影院| 天堂av在线一区| 国产综合一区二区| 在线观看免费观看在线| 日韩精品国产一区二区| jizz国产在线观看| 99热这里只有精品66| 日韩在线一区二区三区四区| 欧美乱强性伦xxxxx| 秋霞午夜剧场| 国产福利a级| 青春有你2免费观看完整版在线播放高清| 新欧美整片sss第一页| 久草免费在线| 久久人人视频| 亚洲福利天堂| 欧美日韩岛国| 国产毛片精品视频| 国产清纯在线一区二区www| 亚洲精品日日夜夜| 欧美日韩成人激情| 亚洲最新av在线网站| 欧美成人免费在线视频| 国产精品久久久久久久久久三级| 国产日韩欧美综合精品| 国产 国语对白 露脸| 亚洲欧美激情网| 色一情一交一乱一区二区三区| 久久精品久久精品久久| 一级特黄aaa大片| 一本本久综合久久爱| jizzjizz丝袜老师| 第一页在线观看| 高清不卡av| 亚洲福利天堂| 日韩国产精品久久久久久亚洲| aaa欧美日韩| 亚洲aⅴ怡春院| 欧美精品一区二区三区蜜桃| 97热精品视频官网| 裸模一区二区三区免费| 亚洲中文字幕久久精品无码喷水| 亚洲精品视频大全| 伊人中文字幕在线观看| 国产日韩欧美中文字幕| 天堂视频在线| 国产视频福利在线| 欧美电影免费观看高清完整| 黑人操亚洲人| 久久久久看片| 中文字幕精品—区二区四季| 欧美三级电影在线看| 亚洲精品国产电影| 国产97色在线|日韩| 欧美高清视频一区| 日av中文字幕| 欧美大片xxxx| 亚洲国产精品视频在线| 你懂的视频网站| 深夜视频在线免费| 高清在线视频不卡| 伊人春色之综合网| 美女久久一区| 中文成人综合网| 7777精品伊人久久久大香线蕉完整版 | 四虎国产精品免费久久| 亚洲区综合中文字幕日日| 奇米精品一区二区三区在线观看 | 2019中文字幕免费视频| 久久riav| 成人亚洲免费视频| 青青草手机在线视频| 亚洲国产精品久久人人爱潘金莲| www.尤物.com| www.8ⅹ8ⅹ羞羞漫画在线看| 欧美顶级大胆免费视频| 丁香五精品蜜臀久久久久99网站| 色狠狠色噜噜噜综合网| 欧美成人剧情片在线观看| 精品久久蜜桃| 亚洲欧美日韩精品一区| 九九热在线免费观看| 四虎海外影库www4hu| 欧美色18zzzzxxxxx| 一区二区三区日本视频| 视频一区欧美日韩| 亚洲图片自拍偷拍| 精品国产网站地址| 日韩一区不卡| 成人在线观看一区二区| 天堂网一区二区| 国产精品果冻传媒| 999av视频| av网站在线观看免费| 性色av蜜臀av| 8848hh四虎| 欧美裸体视频| 欧美视频福利| 国产校园另类小说区| 亚洲国产精品美女| 成人午夜在线影院| 国产三级精品三级在线| jizz国产在线观看| 免费在线观看的av| 午夜影院在线观看国产主播| 韩国av一区| 国产精品麻豆欧美日韩ww| 亚洲激情视频在线观看| 成人欧美一区二区三区黑人免费| 亚欧美在线观看| 亚洲视屏在线观看| 97影院理论| 久久亚洲精精品中文字幕| 国产伦精品一区二区三区视频青涩 | 亚洲高清一二三区| 国产精品区二区三区日本| 久久精品aⅴ无码中文字字幕重口| 亚洲精品福利网站| 欧美三级电影一区二区三区| 欧美日韩国产精品一区二区亚洲| 天天色天天爱天天射综合| 国产福利视频一区二区| 激情文学亚洲色图| 影音先锋一区二区资源站| 男男gaygays亚洲| 久热精品视频| 欧美mv日韩mv国产网站app| 欧美在线播放一区| 久久久久久久久久久久久久免费看| 高清av资源| 日本天堂一区| 亚洲国产乱码最新视频| 国产色99精品9i| 你懂的一区二区| 日韩欧美中文字幕在线观看| 亚洲一区二区少妇| 欧美色图亚洲激情| 黄色免费视频| 高潮按摩久久久久久av免费| 国产精品久久久久久久久免费樱桃 | 亚州色图欧美色图| 香蕉久久网站| 欧美日韩在线三级| 欧美一区二区高清在线观看| 国产无遮挡又黄又爽在线观看 | 少妇人妻偷人精品一区二区| av漫画网站在线观看| 国内成人免费视频| 中文字幕一区日韩电影| 婷婷丁香激情网| 天堂中文在线观看| 国产精品欧美一区二区三区不卡| 日本一区二区在线不卡| 国产精品va在线| 懂色av蜜桃av| 蜜臀在线观看| 精品不卡视频| 日韩精品免费在线视频观看| 男人添女人下部高潮视频在观看 | 影视一区二区三区| 久久综合久久鬼色| 国产精品96久久久久久| 欧美 日韩 国产 成人 在线观看 | 亚洲精品影院在线| 欧美经典影片视频网站| 亚洲另类在线制服丝袜| 国产不卡一区二区三区在线观看| 国产精品99久久久久久成人| 在线资源免费观看| 久久狠狠婷婷| 理论片在线不卡免费观看| 少妇搡bbbb搡bbb搡打电话| 亚洲欧洲一区二区在线观看| 国产精品久久久久久在线观看| 很黄很污的视频网站| 久久综合电影| 欧美大片在线观看一区二区| 国产精品一区二区免费在线观看| 亚洲日本久久久午夜精品| 国产伦乱精品| 欧美日韩情趣电影| 九色自拍视频在线观看| 欧美五级在线观看视频播放| 亚洲国产合集| 日韩一级成人av| 日韩视频第二页| 91激情视频| 国产精品成人av| 亚洲精品国产欧美| 日批视频在线看| 永久免费不卡在线观看黄网站| 久久免费国产| 91高潮精品免费porn| 青娱乐国产盛宴| av在线加勒比| 亚洲一区二区三区视频在线 | 自拍偷拍色综合| 草莓视频成人appios| 偷拍日韩校园综合在线| 日韩视频 中文字幕| 五十路中文字幕| 日韩久久精品| 日韩中文字幕欧美| 婷婷色一区二区三区 | 一区二区三区导航| 欧美大尺度在线观看| 91香蕉视频网| 欧美家庭影院| 亚洲一区二区三区中文字幕 | 国产精选久久久久久| 国产婷婷色一区二区在线观看 | 免费观看又污又黄在线观看国产| 久久www免费人成看片高清| 日本一本a高清免费不卡| 欧美日韩一二三四区| 国产91欧美| 欧美一区日韩一区| www激情五月| 青青草免费在线| 国产日韩欧美高清在线| 亚洲一区二区精品在线观看| 国产剧情在线一区| 99视频精品免费观看| 欧美一区第一页| 中文在线免费观看| 久久久久观看| 亚洲欧美国产另类| 超碰人人人人人人人| 成人免费图片免费观看| 精品免费在线视频| 欧美婷婷精品激情| 久久久久国产精品嫩草影院| 国产精品国产三级国产三级人妇| 自拍亚洲欧美老师丝袜| 九九热在线视频| 韩国av一区二区三区在线观看| 亚洲自拍偷拍色片视频| 综合免费一区二区三区| 激情婷婷欧美| 国产精品极品尤物在线观看 | 久久一级免费视频| 9765激情中文在线| 欧美日韩精品一区二区在线播放 | 2020国产精品久久精品美国| 日韩在线电影一区| 成年免费视频| 国产成人av电影在线播放| 视频在线99re| 一插菊花综合| 国产亚洲1区2区3区| 亚洲色欲久久久综合网东京热| 成人短剧在线观看| 国产女人18毛片水真多成人如厕 | 免播放器亚洲| 亚洲综合一区二区不卡| 欧美另类69xxx| 理论电影国产精品| 玛丽玛丽电影原版免费观看1977| 国产精品冒白浆免费视频| 狠狠色狠狠色合久久伊人| 日本三级中国三级99人妇网站| 黄色网址免费| 91麻豆.com| 成人在线观看你懂的| 亚洲男人天堂| 精品高清一区二区三区| www国产视频| 人人鲁人人莫人人爱精品| 亚洲精品久久视频| 日韩三级一区二区三区| 国产一区日韩| 国产美女91呻吟求| 国产网站免费看| 91亚洲国产成人精品一区二三| 国产黄色片免费在线观看| 国产理论电影在线观看| 精品视频1区2区3区| 免费看一级黄色| 欧美日韩导航| 国产成人免费91av在线| 中文字幕av手机在线| 国产精品中文有码| 日韩伦理在线免费观看| 国内精品在线视频| 欧美精三区欧美精三区| 欧美丰满熟妇bbbbbb| 欧洲亚洲一区二区三区| 国产精品激情av电影在线观看| 久久精品免视着国产成人| 91亚洲大成网污www| 黄色小视频免费网站| 美女18一级毛片一品久道久久综合| 国产一区二区三区日韩欧美| 99久久精品国产成人一区二区 | 中文日韩在线观看| 国产日韩一级片| 激情综合五月天| 日本网站免费在线观看| 性欧美1819sex性高清大胸| 日韩精品欧美激情| 国产又粗又长视频| 久久成人综合网| 青娱乐自拍偷拍| av今日在线| 欧美成人精品xxx| 午夜剧场日韩| 国产午夜精品理论片a级大结局| 日本欧美国产| 国产精品男女猛烈高潮激情| 91激情视频| 一区二区不卡在线播放 | 99国产一区二区三精品乱码| 波多野结衣天堂| 成人欧美一区二区三区的电影| 久久九九国产精品怡红院| 男女啪啪无遮挡| 国产精品久久久一本精品| 国产ts丝袜人妖系列视频| 神马久久av|