国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 課堂 > 電腦知識 > 正文

tiny4412學習一:編譯uboot,體驗裸機

2024-05-08 15:56:08
字體:
來源:轉載
供稿:網友

首先,我們在Ubuntu建立一個自己的文件夾,我的是:?

/home/wang/tiny_4412下有

datasheet  shc(原理圖PCB文件夾) src tools

src下有

codes   u_boot

code??s是裸機存放位置,u_boot?是友善提供的安裝包?

tools下有?

arm-linux-gcc-4.4.3安裝包,dnw安裝包???

下面開始體驗:?

1.安裝minicom建立通信(詳見另一篇博文)?

2.安裝linux-gcc

  1〉解壓安裝 :sudo tar zxvf arm-linux-gcc-4.4.3.tar.gz -C /?

       直接解壓后就可以,-C/會讓解壓的文件自動放在根目錄下指定路徑,不用管)?

       注意:C后面有個空格(不需要),并且C是大寫的(必須),它是英文單詞“Change”

       的第一個字母,在此是改變目錄的意思。執行該命令,將把arm-linux-gcc 安裝

       到/opt/Friendlyarm/toolschain/4.4.3 目錄。??

   2〉建立目錄:?

       sudo mkdir /usr/local/arm

   3〉復制文件:?

       sudo cp -r /opt/FriendlyARM/toolschain/4.4.3        /usr/local/arm?

   4〉添加環境變量:?

       在終端輸入 sudo vim   /root/.bashrc,在最后一行輸入:?

       export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin (路徑)

       (注意等號那邊不要有空格)??

       立即使新的環境變量生效:

        ./etc/bash.bashrc或source /root/.bashrc

?   5〉安裝兼容庫,在終端輸入:sudo apt-get install g++-multilib

   6〉測試成功沒有,登錄root后輸入: arm-linux-gcc -v

        這個命令會顯示arm-linux-gcc信息和版本    或者

        另開一個終端,輸入arm-,然后按兩下Tab,如果出現下列信息,則表明安裝 

        成功?

3.進入u_boot目錄?編譯,執行?

       make clean?       //先清除

       make distclean  //再清除配置,整個過程里面就什么都沒了?

       make tiny4412_config   //這必須的?

       make   //至此編譯完成?

4.把編譯完的u_boot燒到SD卡里?

   1〉插進電腦執行:

       fdisk -l   //查看SD是否被發現

       如果SD自動被掛載,則需要先卸載,查看??ls  /media/??

    2〉進入目錄:/sd_fuse/tiny4412   執行?

       ./sd_fusing .sh    /dev.sdb  (就是sdb,不是sdb1也不是sdb2)?

       如果提示缺少一個mkbl2,我們只需要返回上一目錄執行make再回來執行就好了。

    3〉把卡拔下來插到開發板上,開關撥至SD啟動。

         再打開另一個終端執行:minicom

        啟動開發板,在出現的界面快速按空格。我們可以看到開發板從SDMMC啟動。

5.修改u_boot,建立裸機環境

   1〉關閉MMU

       因為開MMU 的話,System.map里面所有函數地址都映射到c里面,

       因為我們之后要做中斷處理,開發裸機需要直接訪問他們的物理地址,???

       查看System.map:在u_boot目錄下執行:vim  System.map

       關閉:?vim include/configs/tiny4412.h

       進入后輸入:/MMU查找

      把#define CONFIG_ENABEL_MMU改成#undef    CONFIG_ENABEL_MMU  

      保存:wq?

   2〉執行:?

       vim  board/samsung/tiny4412/config.mk??

       把地址改成:0x43e0 0000?  (以后也可以用5.6.7)

       因為開發板內存地址是:4000 0000到5000 0000  256M?

                                            7000 0000到8000 0000  256M  共256Mx4  1G內存?

   3〉重新編譯u_boot?  執行:make??

6.把編譯完的u_boot燒到SD?

   把SD卡插入電腦,查看加載進來沒?

   fdisk -l?

  進入:cd sd_fuse/?

    cd  tiny4412?

    ./sd_fusing.sh   /dev/sdb  //燒進SD?

    分成4部分燒進SD,查看燒寫位置:vim sd_fusing.sh,怎樣燒寫的內容不容易查看。

7.SD卡插進開發板,啟動查看。(記得按空格哦)

8.查看改動:vim System.map

   查看PRintf地址:/printf

   看到地址為:43e1 1e78 復制下來

9.進入??裸機程序目錄,更改代碼:?

   #include "regs.h"

   void (*printf)(char *, ...) = 0x43e11e78;   //地址改

   int test(void)

   {

     unsigned long value = 0;

     __asm__ __volatile__ (

     "mrs %0, cpsr/n"

     : "=&r" (value)

    );

   printf(" value = 0x%x/n", value);

   return 0;

   }?

   保存wq退出,執行:make?

   可以看到鏈接地址是7000 3000?

10.安裝dnw,開發板用USB線連接電腦。?

   在minicom終端界面:dnw  70003000?

   在目錄操作終端界面;lsusb  查看三星的設備(此時沒驅動,沒命令)?

   接下來安裝dnw:?

   進入dnw安裝包目錄:執行?

   tar zxf dnw_linux.tar.gz?

   cd dnw_linux?

   make?

   make install?  //安裝完畢?

11.進入裸機代碼目錄執行:?

   dnw test.bin  //傳到開發板  前提在minicom終端界面執行過:dnw 70003000?

12.在minicom終端界面執行:?

   go  70003000  //運行

查看出結果。至此完畢 ,回想下都做了什么吧。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 盘锦市| 长子县| 宜川县| 遵义市| 瑞安市| 鲁山县| 麟游县| 山东省| 水富县| 左云县| 神池县| 古丈县| 澎湖县| 横峰县| 大竹县| 木里| 浮山县| 额尔古纳市| 泸州市| 监利县| 莱州市| 旌德县| 镇江市| 朔州市| 中阳县| 吉木萨尔县| 南雄市| 元朗区| 东丰县| 涿鹿县| 昌邑市| 洛阳市| 河东区| 城固县| 都匀市| 达孜县| 常宁市| 调兵山市| 东乌| 浙江省| 平度市|