IMX6ULL學習筆記(六)

2021-10-09 15:12:57 字數 2275 閱讀 6816

imx6ull裸機開發學習

以下內容是我在學習正點原子imx6ull開發板alpha中記錄的筆記,部分摘錄自正點原子imx6ull開發手冊

首先使用預設配置檔案,編譯下測試linux能否在板子上執行。配置檔案所在路徑arch/arm/configs/imx_v7_mfg_defconfig

通過修改nxp官方的預設配置檔案和dtb配置檔案,來適配開發板。

imx_v7_mfg_defconfig

imx6ull-14x14-evk-emmc.dtb

修改arch/arm/boot/dts下的makefile檔案,將修改後的dtb檔案,新增進去。

編譯裝置樹檔案,make dtbs

修改主頻和網路驅動(需要保證linux系統可以正常執行,因此需要暫時使用根檔案系統)

pinctrl-names =

"default"

,"state_100mhz"

,"state_200mhz"

; pinctrl-0=

<

&pinctrl_usdhc2_8bit>

; pinctrl-1=

<

&pinctrl_usdhc2_8bit_100mhz>

; pinctrl-2=

<

&pinctrl_usdhc2_8bit_200mhz>

; bus-width =

<

8>

; non-removable;

status =

"okay"

;

修改網路驅動。

修改dts檔案對應位置**如下

pinctrl_spi4: spi4grp 

;

spi4 ;}

;

pinctrl_enet1: enet1grp 

;pinctrl_enet2: enet2grp

;

&fec1 

;&fec2

; ethphy1: ethernet-phy@1;}

;};

修改drivers/net/ethernet/freescale/fec_main.c中的fec_probe函式,新增如下**。

/* 設定 mx6ul_pad_enet1_tx_clk 和 mx6ul_pad_enet2_tx_clk

* 這兩個 io 的復用暫存器的 sion 位為 1。

*/void __iomem *imx6u_enet1_tx_clk;

void __iomem *imx6u_enet2_tx_clk;

imx6u_enet1_tx_clk =

ioremap

(0x020e00dc,4

);writel

(0x14

, imx6u_enet1_tx_clk)

;imx6u_enet2_tx_clk =

ioremap

(0x020e00fc,4

);writel

(0x14

, imx6u_enet2_tx_clk)

;

然後編譯下裝置樹檔案,並且在圖形化介面中使能lan8720a的驅動。

device drivers

network device support

phy device support and infrastructure

drivers for smsc phys

最後編譯下linux的核心檔案。

然後使用如下命令載入linux映象到記憶體中。

fatload mmc 0:1

80800000 zimage

fatload mmc 0:1

83000000 imx6ull-

14x14-myboard.dts

bootz 80800000

-83000000

IMX6ULL學習筆記(一)

imx6ull裸機開發學習 以下內容是我在學習正點原子imx6ull開發板alpha中記錄的筆記,部分摘錄自正點原子imx6ull開發手冊。bin檔案前面要新增頭部 ivt boot data dcd資料 由官方手冊可知要燒寫到sd卡中的load.imx檔案在sd卡中的起始位址是0x400,也就是1...

IMX6ULL學習筆記(三)

imx6ull裸機開發學習 以下內容是我在學習正點原子imx6ull開發板alpha中記錄的筆記,部分摘錄自正點原子imx6ull開發手冊。鏈結指令碼的例子 sections rodata align 4 data align 4 bss start bss align 4 bss end bss ...

正點原子 IMX6ULL學習

啟動檔案.global start 全域性標號 描述 start函式,程式從此函式開始執行,此函式主要功能是設定c 執行環境。start 進入svc模式 mrs r0,cpsr bic r0,r0,0x1f 將r0暫存器中的低5位清零,也就是cpsr的m0 m4 orr r0,r0,0x13 r0或...