在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > Uboot對非Linux kernel的引導

            Uboot對非Linux kernel的引導

            作者: 時間:2016-09-12 來源:網(wǎng)絡 收藏

            實現(xiàn)了uboot對非linux kernel的引導。雖然有一個IH_TYPE_STANDALONE,但是沒有實現(xiàn)。nnd。只能自己想辦法。實現(xiàn)詳細見下面。

            本文引用地址:http://www.biyoush.com/article/201609/305147.htm

            1、兩個命令

            set bootcmd tftp 84000000 uImage;bootm 84000000

            set bootdelay 1

            2、非linux kernel的引導實現(xiàn)方法:

            一共三個函數(shù): jump,selectboot 和 system_boot

            把jump放在需要跳轉的地方,參數(shù)就是要跳轉的地址。然后返回,重啟系統(tǒng)。select放在main的開頭。通過判斷ram的特定地址的特定信息實現(xiàn)跳轉。

            system_boot實現(xiàn)系統(tǒng)的重新啟動

            #define FDMA_SRAM_TOP_ADDRESS 0xB9229800

            #define MAGIC_NUM 0x71097100

            #define DEAD_PATTERN 0xBAD0BADF

            #define ST40_CPG_REGS_BASE 0xFFC00000#define

            ST40_CPG_WTCNT (ST40_CPG_REGS_BASE + 0x08)

            #define ST40_CPG_WTCSR (ST40_CPG_REGS_BASE + 0x0C)

            #define ST40_CPG_WTCSR2 (ST40_CPG_REGS_BASE + 0x1C)

            void Jump(unsigned int address)

            {

            STSYS_WriteRegDev32LE(FDMA_SRAM_TOP_ADDRESS - 4*1, MAGIC_NUM);

            STSYS_WriteRegDev32LE(FDMA_SRAM_TOP_ADDRESS - 4*2, address);

            STSYS_WriteRegDev32LE(FDMA_SRAM_TOP_ADDRESS - 4*3, ~address);

            STSYS_WriteRegDev32LE(FDMA_SRAM_TOP_ADDRESS - 4*4, ~MAGIC_NUM);

            STSYS_WriteRegDev16LE(ST40_CPG_WTCNT, 0x5AF0); /*Watchdog counter*/

            STSYS_WriteRegDev16LE(ST40_CPG_WTCSR, 0xA547); /*Watchdog control*/

            STSYS_WriteRegDev16LE(ST40_CPG_WTCSR2, 0xAA00); /*Watchdog control2*/

            STSYS_WriteRegDev16LE(ST40_CPG_WTCSR, 0xA5C7); /*Start watchdog counter*/ for(;;);

            }

            void SelectBoot(void)

            {

            unsigned int MagicNum = 0;

            unsigned int NotMagicNum = 0;

            unsigned int JumpAddress = 0;

            unsigned int NotJumpAddress = 0; void (*entry)(void);

            /* entry=0xa0100000;

            entry();*/ //if((STSYS_ReadRegDev16LE(ST40_CPG_WTCSR2) 0xFF) != 0x0)

            {

            MagicNum = STSYS_ReadRegDev32LE(FDMA_SRAM_TOP_ADDRESS - 4*1);

            JumpAddress = STSYS_ReadRegDev32LE(FDMA_SRAM_TOP_ADDRESS - 4*2);

            NotJumpAddress = STSYS_ReadRegDev32LE(FDMA_SRAM_TOP_ADDRESS - 4*3);

            NotMagicNum = STSYS_ReadRegDev32LE(FDMA_SRAM_TOP_ADDRESS - 4*4);

            if((MagicNum == MAGIC_NUM)

            (MagicNum == (~NotMagicNum))

            (JumpAddress == (~NotJumpAddress)))

            {

            entry = (void (*)(void))JumpAddress;

            STSYS_WriteRegDev32LE(FDMA_SRAM_TOP_ADDRESS - 4*1, DEAD_PATTERN);

            STSYS_WriteRegDev32LE(FDMA_SRAM_TOP_ADDRESS - 4*2, DEAD_PATTERN);

            STSYS_WriteRegDev32LE(FDMA_SRAM_TOP_ADDRESS - 4*3, DEAD_PATTERN);

            STSYS_WriteRegDev32LE(FDMA_SRAM_TOP_ADDRESS - 4*4, DEAD_PATTERN);

            #if 0/*Setup For watchdog in case jump failed.*/

            STSYS_WriteRegDev16LE(ST40_CPG_WTCNT, 0x5AF0);

            STSYS_WriteRegDev16LE(ST40_CPG_WTCSR, 0xA543);

            STSYS_WriteRegDev16LE(ST40_CPG_WTCSR2, 0xAA01);

            STSYS_WriteRegDev16LE(ST40_CPG_WTCSR, 0xA5C7);

            #endif entry(); while(1);

            }

            }

            }void system_reboot(void)

            {

            ulong sr;

            asm (stc sr, %0:=r (sr));

            sr  = (1 28); /* set block bit */

            asm (ldc %0, sr: :r (sr));

            asm volatile (trapa #0);

            }



            關鍵詞:

            評論


            相關推薦

            技術專區(qū)

            關閉