国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

電子工程網

標題: OK6410裸機調試程序開發方法和開發步驟詳解+LED例程模板+LCD uboot說明 [打印本頁]

作者: yanhong    時間: 2011-11-23 14:36
標題: OK6410裸機調試程序開發方法和開發步驟詳解+LED例程模板+LCD uboot說明
第一部分:
飛凌6410開發板 裸機調試程序開發教程手冊(PDF版):
點擊此處下載 OK6410裸機開發教程.rar (2.76 MB)   
第二部分:
OK6410 裸機LED開發模板:點擊此處下載 forlinx6410-led1.rar (41.67 KB)   
第三部分:
因為LCD部分是飛凌開源的,而且內容也沒有需要特別說明的,需要這部分源碼的朋友可以在飛凌網站直接下載。這里先對LCD測試程序中,調整uboot初始化部分做一些注釋(僅代表個人觀點)
1.將board/samsung/smdk6410/smdk6410.c lowlevel_init.s
        // 128MB for SDRAM 0xC0000000 -> 0x50000000
        .set __base, 0x500
        .rept 0x580 - 0x500
        FL_SECTION_ENTRY __base,3,0,1,1
        .set __base,__base+1
        .endr
將這一段去掉,也可以不去掉但是將不再應用這段地址
地址的虛擬地址和物理地址一一對應.這樣我們在裸機程序中才可以重新對mmu做地址映射,將0地址映射到我們需要
的地方以中斷到來的時候能夠跳轉到相應代碼執行中斷跳轉函數.
2: 將board/samsung/smdk6410/config.mk  TEXT_BASE=0x50100000 . 0x50100000將作為我們以后編寫裸機程序的
起始地址
3: 將board/samsung/smdk6410/smdk6410.c  
ulong virt_to_phy_smdk6410(ulong addr)
{
         
        if ((0xc0000000 <= addr) && (addr < 0xc8000000))
                 
        return (addr - 0xc0000000 + 0x50000000);
         
        else
                 
        printf("do not support this address : %08lx\n", addr);
         
        return addr;
}
更改為
ulong virt_to_phy_smdk6410(ulong addr)
{
         
        if ((0x50000000 <= addr) && (addr < 0x58000000))
                 
        return (addr - 0x50000000 + 0x50000000);
         
        else
                 
        printf("do not support this address : %08lx\n", addr);
         
        return addr;
}
4:將include/configs/smdk6410.h中
#define USBD_DOWN_ADDR                0xc0000000 改為  #define USBD_DOWN_ADDR                0x50000000
#define CFG_UBOOT_BASE                0xc7e00000 改為 #define CFG_UBOOT_BASE                0x57e00000
#define CONFIG_BOOTCOMMAND        "nand read 0xc0008000 0x100000 0x300000;bootm 0xc0008000"改為
#define CONFIG_BOOTCOMMAND        "nand read 0x50100000 0x100000 0x300000;bootm 0x50100000"將2M大小的
flash內容加載到內存中的0x50100000的起始地址處并跳轉到0x50100000 地址處執行
編譯uboot 下載開uboot.bin 到 flash 0 - 0x100000 地址處

接下來說一下裸機開發流程
1:裸機連接地址為0x50100000
2:因為uboot已經為我們做了系統初始化工作.裸機初始化程序只要重新設定,中斷入口,各個模式堆棧地址即可.
3:重新進行虛擬地址映射 將0地址映射到 0x50100000;
__ENTRY: b        reset        /*跳轉到reset*/
                ldr        pc, _undefined_instruction
                ldr        pc, _software_interrupt
                ldr        pc, _prefetch_abort
                ldr        pc, _data_abort
                ldr        pc, _not_used
                ldr        pc, _irq
                ldr        pc, _fiq
reset:
        @Initialize stacks
        bl        InitStacks         
        bl        Main
        b        .
_fiq:
        .word fiq
irq:
        mov sp,#0x57000000
        irq_save_user_regs
        bl        do_irq
        irq_restore_user_regs
發生中斷后跳轉到 irq執行 ,首先設置irq模式的 堆棧地址 保存現場跳轉到do_irq執行中斷處理函數,最后恢復現場
uboot.bin 和裸機測試lcd 程序   下載地址飛凌論壇S3C6410開發板專區:www.witech.com.cn
作者: 莫莫無蚊    時間: 2013-2-12 19:22
不錯不錯  下來看看!!




歡迎光臨 電子工程網 (http://m.qingdxww.cn/) Powered by Discuz! X3.4
主站蜘蛛池模板: 91精品国产91热久久p| 性xxxx18公交车| 中文字幕无线手机在线| 性插网站| 色天使色护士 在线视频观看| 日韩精品视频在线观看免费| 亚洲高清国产品国语在线观看| 亚洲免费三区| 视频免费看| 91国在线啪精品一区| 欧洲最大无人区免费高清完整版| 亚洲免费在线观看视频| 天天色官网| 婷婷在线五月| 亚洲永久| 久 久 亚洲 少 妇 无 码| 最近中文字幕MV高清在线视频| 特级aa毛片在线播放| 日韩在线不卡视频| 色综合久久中文字幕网| 在线视频一区二区三区四区| 伦理片qvod| 中文字幕爆乳JULIA女教师| 欧美高清第一页| 色屁屁二区| 99热最新网站| 天天色狠狠干| 亚洲国产欧美精品一区二区三区| 日本高清免费不卡在线播放| 一级片久久| 365电影成人亚洲网在线观看| 黄色日本女人| 亚洲这里只有精品| 日韩成人三级| 亚洲男人第一天堂| 主播蜜汁丝袜 精品自拍| 久久影院毛片一区二区| 中文字幕在线观看亚洲| 清清草免费视频| 色屋3.色屋4.色屋5| aaa级黄影片|