殘留的linux相關筆記,殘留linux相關筆記

來源:互聯網
上載者:User

殘留的linux相關筆記,殘留linux相關筆記

1. 設定網路環境
1) 設定宿主機網路環境
#ifconfig eth1 192.168.16.111

2) 設定開發板網路環境
>pri
>setenv ipaddr 192.168.16.233
>setenv serverip 192.168.16.111
>setenv gatewayip 192.168.16.1
>ping 192.168.16.111
>saveenv

2. 通過TFTP下載檔案
>tftp 0x40000000 aaa.txt

3. 通過tftp燒寫自己的u-boot
1) 下載檔案到開發板
#cp u-boot.bin /tftpboot/    將編譯好的u-boot放在宿主機tftp伺服器目錄
>tftp 0x40000000 u-boot.bin    下載u-boot到目標機

2) 用u-boot命令燒寫Flash(先擦、再寫)
>nand erase 0x0 0x60000            擦除flash,從0地址擦0x60000大小
>nand write 0x40000000 0x0 0x60000    將記憶體0x40000000地址處的檔案寫到Flash的0x0地址,寫0x60000大小。    

4. 載入核心
1) 生產uImage
arch/arm/boot/zImage 核心原版
製作u-boot引導的核心 uImage, u-boot/mkimage -> zImage -> uImage
#拷貝已編譯過的u-boot/tools/mkimage 到/usr/bin
#在核心源碼目錄下執行make uImage

2) 安裝核心
#cp arch/arm/boot/uImage /tftpboot
TFTP  下載核心映像  uImage  到  DRAM 1  的起始地址  0x40000000:   
>tftp 0x40000000 uImage
啟動核心
>bootm


3) 固化核心
>tftp 0x40000000 uImage
>nand erase 0x600000 0x500000
>nand write 0x40000000 0x600000 0x500000

u-boot啟動參數
>setenv bootcmd 'nand read 0x40000000 0x600000 0x500000; bootm 0x40000000'

5. 掛載檔案系統
1) 搭建NFS伺服器,參見《開發環境搭建 2.3節》

2) 重啟NFS伺服器
service portmap restart
/etc/init.d/nfs-kernel-server restart

6. 配置開發板啟動參數
1) 設定u-boot啟動命令
>setenv bootcmd tftp 40000000 uImage\; bootm\;

2) 設定核心啟動參數,以NFS方式遠程掛載宿主機上的根檔案系統
>setenv  bootargs  'console=ttySAC0,115200  root=/dev/nfs  rw  nfsroot=192.168.1.130:/nfs/mini_rootfs ip=192.168.16.200:192.168.1.130:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc'

-----------------------------------------

設定核心io的介面:

設定GPIO的方向,如果是輸出同時設定電平:
    gpio_direction_input(S5PV210_GPJ2(0));
    gpio_direction_output(S5PV210_GPJ2(0), 0);

擷取輸入引腳的電平:
    gpio_set_value(S5PV210_GPJ2(0), data);
    gpio_get_value(S5PV210_GPJ2(0));
    
二 核心中gpio的使用
     1 測試gpio連接埠是否合法 int gpio_is_valid(int number);

     2 申請某個gpio連接埠當然在申請之前需要顯示的配置該gpio連接埠的pinmux
        int gpio_request(unsigned gpio, const char *label)

     3 標記gpio的使用方向包括輸入還是輸出
       /*成功返回零失敗返回負的錯誤值*/
       int gpio_direction_input(unsigned gpio);
       int gpio_direction_output(unsigned gpio, int value);

     4 獲得gpio引腳的值和設定gpio引腳的值(對於輸出)
        int gpio_get_value(unsigned gpio);
        void gpio_set_value(unsigned gpio, int value);

     5 gpio當作中斷口使用
        int gpio_to_irq(unsigned gpio);
        返回的值即中斷編號可以傳給request_irq()和free_irq()
        核心通過調用該函數將gpio連接埠轉換為中斷,在使用者空間也有類似方法

     6 匯出gpio連接埠到使用者空間
        int gpio_export(unsigned gpio, bool direction_may_change);
        核心可以對已經被gpio_request()申請的gpio連接埠的匯出進行明確的管理,
        參數direction_may_change表示使用者程式是否允許修改gpio的方向,假如可以
        則參數direction_may_change為真
        /* 撤銷GPIO的匯出 */
        void gpio_unexport();

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.