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 單片機教程網

快速回復 返回頂部 返回列表
亚洲欧洲国产日韩| 亚洲一区二区久久久久久| 91女人视频在线观看| 国产一区二区三区不卡视频网站| 欧美三级黄网| 日本黄色电影网站| 中文字幕在线视频免费| 国产精品300页| 欧美黑人在线观看| 成人免费福利在线| 日韩视频中文字幕| 欧美在线综合视频| 国产精品久久三| 美女诱惑一区二区| 日韩欧美大片| 玖玖玖视频精品| 免费在线看电影| 亚洲女优视频| japanesexxxx在线播放| 天天躁日日躁狠狠躁喷水| 久一视频在线观看| 30一40一50老女人毛片| 一区二区三区入口| 在线观看17c| 欧美一区1区三区3区公司 | 日本18视频网站| 国产精品自产拍在线网站| 国产又大又黄的视频| 久久久久亚洲AV成人| 网站免费在线观看| 午夜久久福利视频| 日韩黄色片在线| 日本一区二区免费看| 亚洲v日韩v综合v精品v| 国产精品天天摸av网| 免费日韩av片| 欧美日韩三区| 精品国产一区二区三区久久久樱花| 日韩a**中文字幕| 亚洲夜夜综合| 91社区在线观看| 天天在线女人的天堂视频| 天天色天天草| 蜜芽在线视频| 星空无限传媒在线| 国产精品视频福利一区二区| 区日韩二区欧美三区| 亚洲天堂中文字幕在线| 久久机热这里只有精品| 精品无码在线观看| 动漫精品一区二区三区| 东京热av一区| 在线播放国产视频| 人妻少妇偷人精品久久久任期| 性欧美极品xxxx欧美一区二区| www.日本在线播放| 亚洲熟妇无码一区二区三区导航| 伊人久久大香线蕉av一区| 欧美综合激情| 亚洲mv在线看| 亚洲欧美日韩精品综合在线观看| 日韩福利一区二区三区| 日韩欧美精品一区二区| 亚洲精品在线免费| 一区视频二区视频| 国产对白在线播放| 青青在线视频免费观看| 国产黄色激情视频| 九九九九免费视频| 精品久久久噜噜噜噜久久图片| 成人精品视频一区二区| chinese少妇国语对白| 国产日韩成人内射视频| 天天干天天爽天天射| 国产资源中文字幕| 国产精品无码午夜福利| 亚洲天堂最新地址| 欧美成人一二三区| 国产99久久久| 97成人在线观看| 五月色婷婷综合| 精品极品三级久久久久| 天堂一本之道| 毛片视频免费观看| 久久99久久| 最新av在线播放| 日本综合字幕| www.国产精品一区| 免费久久精品| 欧美精品aa| 蜜臀av在线播放一区二区三区| 国产乱对白刺激视频不卡| 26uuu久久天堂性欧美| 亚洲三级电影网站| 欧美性猛交xxx| 欧美成人高清电影在线| 中文字幕不卡av| 91精品国产91久久久久福利| 成人在线中文字幕| 欧美xxxx黑人又粗又长密月| 麻豆一区二区三区在线观看| 国产精品人人妻人人爽人人牛| 农村末发育av片一区二区 | 亚州欧美一区三区三区在线 | 亚洲精品一区二区口爆| 国产欧美日韩第一页| 成人福利影院| 国产大片在线免费观看| 色是在线视频| 欧美男男freegayvideosroom| 91av精品| 国产美女精品在线| 亚洲品质自拍视频网站| 在线电影院国产精品| 一本色道久久88综合日韩精品| 性色av一区二区三区| 国内精品视频在线播放| av在线播放亚洲| 久久久久无码国产精品一区李宗瑞| 丁香六月激情综合| 中文字幕欧美色图| 国产精品人人爱一区二区白浆| 男男做性免费视频网| 超碰在线观看免费版| 24小时成人在线视频| 亚洲成人精品| 成人免费高清在线| 黄网站色欧美视频| 亚洲欧美中文另类| 亚洲最新在线观看| 欧美日韩一区二区电影| 深夜福利亚洲导航| 91aaaa| 97视频在线免费| 视频免费在线观看| 91视频在线视频| 国产精品69一区二区三区| 亚洲国产精品成人一区二区在线| 欧美xx视频| 欧美在线亚洲综合一区| 91尤物视频在线观看| 欧美综合亚洲图片综合区| 日韩在线观看高清| 狠狠色综合网站久久久久久久| 午夜欧美福利视频| 黄色小说在线观看视频| 亚洲精品一区中文字幕电影| 深夜影院在线观看| 国产精品亚洲四区在线观看| 国产日韩高清一区二区三区在线| 国产精品嫩草久久久久| 亚洲第一黄色网| 国产欧美精品va在线观看| 精品久久久久久无码中文野结衣| 成人黄色免费网址| 亚洲精品字幕在线| 超碰在线电影| 国产精品成人**免费视频| 久久久久久久欧美精品| 亚洲综合色自拍一区| 色婷婷久久av| 欧洲成人一区二区| 精品黑人一区二区三区观看时间| 国产强伦人妻毛片| 黄页网址大全在线播放| 欧美国产中文高清| 国产一区免费电影| 欧美巨大另类极品videosbest | 另类一区二区| 免费成人美女在线观看| 一本色道综合亚洲| 日本精品久久中文字幕佐佐木| 黄色一级片在线看| 欧美日韩免费一区二区| 自拍视频网站| 91久久国产综合久久91猫猫| 香蕉成人久久| 色哟哟精品一区| 国产成人涩涩涩视频在线观看| 欧美色图色综合| 成人午夜淫片100集| eeuss影院www影院入口| 中韩乱幕日产无线码一区| 日产国产高清一区二区三区| 欧美情侣在线播放| 2020国产精品久久精品不卡| 91亚洲一线产区二线产区| 韩国av一区二区三区四区| 日韩欧美精品在线| 九色91在线视频| 白白色免费视频| 欧美www在线观看| 手机在线理论片| 精品一区在线看| 欧美人成网站| 色综合婷婷久久| 国产日韩一区在线| 免费不卡的av| 四虎成人精品在永久免费| av资源在线| 美女诱惑一区二区| 精品少妇一区二区三区视频免付费| 国产一区二区三区奇米久涩| 亚洲精品视频网址| 蜜桃视频涩涩| www.亚洲一二| 亚洲欧洲综合另类| 国产精品第100页| 艳妇乳肉豪妇荡乳xxx| 国产香蕉成人综合精品视频| 91福利精品在线观看| 成人精品在线视频观看| 久久国内精品一国内精品| 91丨porny丨探花| 99久久免费国产精精品| 国产黄色小视频在线| 丝袜a∨在线一区二区三区不卡| 日韩三级视频在线观看| 樱花www成人免费视频| 丁香社区五月天| av午夜在线| 在线亚洲激情| 亚洲激情国产精品| 日韩欧美视频免费在线观看| 91精品国产综合久| 污片在线免费观看| 国产激情精品久久久第一区二区 | 一区二区三区在线免费视频| 国产裸体写真av一区二区 | 成人免费观看在线| 11024精品一区二区三区日韩| 男人的天堂在线视频免费观看 | 久久成人高清| 欧美性xxxx极品hd欧美风情| 久久香蕉综合色| 亚洲成熟少妇视频在线观看| 98在线视频| 精品一区二区国语对白| 精品国产一区二区三区久久狼黑人 | 精品亚洲va在线va天堂资源站| 男人添女荫道口女人有什么感觉| 一级特黄aaa大片| 激情aⅴ欧美一区二区欲海潮| 国产+成+人+亚洲欧洲自线| 海角国产乱辈乱精品视频| 亚洲一区二区三区四区av| 免费网站观看电影入口| 日韩理论电影大全| 欧美电视剧在线看免费| 免费av观看网址| 思思久久99热只有频精品66| 国产精品网在线观看| 91黄色免费网站| 天天爱天天做天天操| 秋霞欧美在线观看| 激情视频亚洲| 福利一区福利二区微拍刺激| 亚洲精品久久区二区三区蜜桃臀 | rebdb初裸写真在线观看| 99麻豆久久久国产精品免费优播| 欧美一区二区.| 日日噜噜夜夜狠狠久久波多野| 国产在线视频网址| 国产精品偷拍| 欧洲午夜精品| 成年人免费网站在线观看| 国产三级精品视频| av女片在线| 黄www在线观看| 亚洲国产三级在线| 色婷婷av在线| 蜜桃无码一区二区三区| 91麻豆精品国产91久久久久| 久久精品夜色噜噜亚洲a∨| 欧美性受xxx| 国产精品成人无码免费| 男人天堂综合| 大白屁股一区二区视频| 国产有码一区二区| 久久青青草原亚洲av无码麻豆 | 成人综合社区| 一区二区美女| 日韩av在线一区二区| 色姑娘综合天天| 一区二区三区四区在线免费视频| 韩国av一区二区三区| 国产精品自拍网| 日本精品入口免费视频| 天天综合91| 欧美日本国产视频| 成年人三级黄色片| 开心丁香婷婷深爱五月| 久久精品72免费观看| 国产精品视频久久久久| 成人一二三四区| 欧美a在线观看| 欧美精品一区二区精品网| 国产精九九网站漫画| 毛片免费在线播放| 国产日韩欧美亚洲| 一区二区三区国| 99久久亚洲| 欧美激情亚洲| 91成人精品网站| 精人妻无码一区二区三区| 亚洲一区二区三区免费| 日韩成人中文电影| 男人操女人动态图| av电影在线免费| 一本在线高清不卡dvd| 超碰在线人人爱| 四虎在线观看| 亚洲欧洲成人精品av97| 国产精品久久久久久久久电影网| 2018天天操夜夜操| 国产一区二区不卡在线 | 日本少妇毛茸茸高潮| 日韩一区精品| 精品久久久久久久久久久久久久久| 日本一区二区在线免费观看| 黄色动漫在线观看| 亚洲妇女屁股眼交7| 黄页网站在线观看视频| 成人黄动漫网站| 国产欧美日韩亚州综合| 日韩欧美一级在线| 丁香婷婷自拍| 国产精品天干天干在线综合| 成人免费性视频| 3dmax动漫人物在线看| 久久亚洲影视婷婷| 日本黄xxxxxxxxx100| xxxxx国产| 日本一区二区三级电影在线观看| 欧美精品在欧美一区二区| 国产亚洲精品精品精品| 91xxx在线观看| 欧美体内谢she精2性欧美| 亚洲性图第一页| 草莓视频丝瓜在线观看丝瓜18| 欧美色爱综合网| 偷拍夫妻性生活| 国产精品视频一区二区三区综合| 在线观看亚洲区| 波多野结衣电车| 婷婷另类小说| 国产日韩精品在线观看| 欧美多人野外伦交| 国产suv精品一区二区三区| 不卡中文字幕在线| 福利网址在线| 欧美色视频日本高清在线观看| 18禁一区二区三区| 欧美日韩精品免费观看视完整| 亚洲另类欧美自拍| 91九色丨porny丨肉丝| 日韩精品网站| 成人在线小视频| 狠狠干夜夜草| 18欧美亚洲精品| 黄色片子免费看| 桃花岛成人影院| 最近2019年日本中文免费字幕 | av资源新版天堂在线| 亚洲高清久久网| 免费黄色av片| 狠狠88综合久久久久综合网| 国产精选一区二区| 8848hh四虎| 精品日韩视频在线观看| 五月激情四射婷婷| 国产探花一区| 亚洲影院色在线观看免费| 成年免费视频黄网站在线观看| 亚洲欧美偷拍三级| 亚洲欧美在线不卡| 盗摄牛牛av影视一区二区| 欧洲一区二区视频| 中国女人内谢25xxxxx| 国产精品色噜噜| 成人手机在线免费视频| 4438全国亚洲精品观看视频| 国产精品91久久久| 九九热免费在线视频| 亚洲最大成人网4388xx| 中文字幕有码在线播放| 欧美日本成人| 福利视频久久| 国外av网站| 欧美色手机在线观看| 日韩欧美亚洲一区二区三区| 黄色亚洲在线| 亚洲小说欧美另类激情| 免费在线你懂的| 国产亚洲视频在线观看| 五月婷婷开心中文字幕| 99久久精品免费精品国产| 俄罗斯女人裸体性做爰| 高清欧美性猛交xxxx黑人猛| 亚洲伊人成综合成人网|