精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux內(nèi)核移植教程

CHANBAEK ? 來源:嵌入式攻城獅 ? 作者: 安迪西 ? 2023-04-19 11:20 ? 次閱讀

內(nèi)核移植

半導(dǎo)體廠商會從 Linux內(nèi)核官網(wǎng)下載某個版本,將其移植到自己的 CPU上,測試成功后就會將其開放給該半導(dǎo)體廠商的 CPU開發(fā)者。 開發(fā)者下載其提供的 Linux內(nèi)核,然后將其移植到自己的產(chǎn)品上。

本文使用 NXP提供的 Linux內(nèi)核源碼進行移植,文件名為:

linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2

1.NXP官方開發(fā)板Linux內(nèi)核編譯測試

編譯內(nèi)核之前需要先在ubuntu上安裝 lzop庫,另外,圖形化配置工具還需要 ncurses庫支持,安裝命令為:

sudo apt-get install lzop
sudo apt-get install build-essential 
sudo apt-get install libncurses5-dev

在 Ubuntu中新建一個文件夾,然后將 linux內(nèi)核壓縮包拷貝到文件夾中并解壓,解壓命令為:

tar -vxf linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2

1.1 配置并編譯內(nèi)核

編譯 Linux內(nèi)核之前要先配置 Linux內(nèi)核。 每個板子都有對應(yīng)的默認配置文件,保存在“arch/arm/configs”目錄中。 imx_v7_defconfig和imx_v7_mfg_defconfig都可以作為 NXP官方開發(fā)板 IMX6ULL EVK的默認配置文件,一般使用后者,因為后者編譯出來的 zImage可通過 NXP官方提供的 MfgTool工具進行燒寫

進入到 Ubuntu中的 Linux源碼根目錄下,執(zhí)行如下命令:

#編譯之前先清理
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean 	
#配置Linux內(nèi)核
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_mfg_defconfig 
#編譯Linux內(nèi)核
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j16

編譯完成后,會得到兩個重要文件:

  • Linux內(nèi)核鏡像文件:存放路徑為 arch/arm/boot/zImage
  • IMX6ULL EVK開發(fā)板對應(yīng)的設(shè)備樹文件:存放路徑為 arch/arm/boot/dts/imx6ull-14x14-evk.dtb

1.2 內(nèi)核啟動測試

將上一節(jié)中生成的 zImage和 imx6ull-14x14-evk.dtb這兩個文件下載到 IMX6U-ALPHA開發(fā)板上進行測試。

首先檢查 uboot中的環(huán)境變量 bootargs

console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw

然后拷貝 zImage和 imx6ull-14x14-evk.dtb這兩個文件到 Ubuntu的 tftp目錄下

cp arch/arm/boot/zImage /home/andyxi/linux/tftp
cp arch/arm/boot/dts/imx6ull-14x14-evk.dtb /home/andyxi/linux/tftp

最后啟動開發(fā)板,進入 uboot命令行模式,輸入如下命令以上兩個文件下載到開發(fā)板中并啟動

tftp 80800000 zImage
tftp 83000000 imx6ull-14x14-evk.dtb
bootz 80800000 - 83000000

內(nèi)核啟動后,如果 EMMC中存在根文件系統(tǒng),就可以進入到 Linux系統(tǒng)里使用命令進行操作,如下圖示

圖片

1.3 根文件系統(tǒng)缺失錯誤

Linux內(nèi)核啟動以后是需要根文件系統(tǒng)的,根文件系統(tǒng)存在哪里由 uboot的 bootargs環(huán)境變量決定的,bootargs會傳遞給 Linux內(nèi)核作為命令行參數(shù),比如上一節(jié)的 bootargs環(huán)境變量值為:

console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw

其中“root=/dev/mmcblk1p2”表示根文件系統(tǒng)存儲在 /dev/mmcblk1p2中(即EMMC的分區(qū)2),IMX6UL-ALPHA開發(fā)板在出廠時已經(jīng)將根文件系統(tǒng)燒寫到了 EMMC的分區(qū)2中

圖片

如果不設(shè)置文件系統(tǒng)路徑或者路徑設(shè)置錯誤,開發(fā)板從網(wǎng)絡(luò)啟動后會提示內(nèi)核崩潰,VFS(虛擬文件系統(tǒng))不能掛在文件系統(tǒng)。 下圖中為不設(shè)置文件系統(tǒng)路徑以及后續(xù)出現(xiàn)的報錯信息

圖片

2.在Linux內(nèi)核中添加自已的開發(fā)板

2.1 添加開發(fā)板默認配置文件

將arch/arm/configs目錄下的 imx_v7_mfg_defconfig文件重新復(fù)制一份并命名為 imx_andyxi_emmc_defconfig,此后該文件就是自已開發(fā)板的默認配置文件了

cd arch/arm/configs
cp imx_v7_mfg_defconfig imx_andyxi_emmc_defconfig

2.2 添加開發(fā)板對應(yīng)的設(shè)備樹文件

將arch/arm/boot/dts目錄下的 imx6ull-14x14-evk.dts文件重新復(fù)制一份并命名為 imx6ull-andyxi-emmc.dts,.dts是設(shè)備樹源碼文件,編譯Linux的時候會將其編譯成.dtb文件

cd arch/arm/boot/dts
cp imx6ull-14x14-evk.dts imx6ull-andyxi-emmc.dts

修改arch/arm/boot/dts目錄下的Makefile文件,添加開發(fā)板設(shè)備樹文件

########## arch/arm/boot/dts/Makefile代碼段 ##########
dtb-$(CONFIG_SOC_IMX6ULL) += 		\\
  imx6ull-14x14-ddr3-arm2.dtb		\\
  imx6ull-14x14-ddr3-arm2-adc.dtb		\\
  ......
  ......
  imx6ull-14x14-evk-usb-certi.dtb		\\
  imx6ull-andyxi-emmc.dtb			\\
  ......
  ......

2.3 編譯測試

添加完 IMX6UL-ALPHA EMMC開發(fā)板后,可以創(chuàng)建一個編譯腳本imx6ull_andyxi_emmc.sh

#!/bin/sh
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_andyxi_emmc_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j16

執(zhí)行 shell腳本編譯 Linux內(nèi)核, 命令如下:

chmod 777 imx6ull_andyxi_emmc.sh   #給予可執(zhí)行權(quán)限
./imx6ull_andyxi_emmc.sh           #執(zhí)行shell腳本編譯內(nèi)核

編譯完成后,將 zImage和 imx6ull-andyxi-emmc.dtb文件拷貝至 tftp目錄下,然后重啟開發(fā)板,在 uboot命令模式中使用tftp命令下載這兩個文件并啟動開發(fā)板

tftp 80800000 zImage
tftp 83000000 imx6ull-andyxi-emmc.dtb
bootz 8080000083000000

出現(xiàn)如下圖示內(nèi)容就表示 Linux內(nèi)核啟動成功

圖片

3.內(nèi)核網(wǎng)絡(luò)驅(qū)動修改

3.1 使能8線EMMC驅(qū)動

IMX6UL-ALPHA EMMC開發(fā)板上的EMMC采用8位數(shù)據(jù)線,而Linux內(nèi)核里的EMMC默認是4線模式的,可以通過修改為8線模式來提高運行速度

圖片

修改方法:直接修改設(shè)備樹源碼文件 imx6ull-andyxi-emmc.dts,修改完成后使用"make dtbs"命令重新編譯設(shè)備樹即可

########## 修改后的imx6ull-andyxi-emmc.dts代碼段 ##########
&usdhc2 {
  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";
};

3.2 網(wǎng)絡(luò)驅(qū)動修改

IMX6UL-ALPHA EMMC開發(fā)板的網(wǎng)絡(luò)和 NXP官方開發(fā)板的網(wǎng)絡(luò)硬件不同,網(wǎng)絡(luò) PHY芯片由 KSZ8081換為了 LAN8720A,兩個網(wǎng)絡(luò)PHY芯片的復(fù)位IO也不同,所以 Linux內(nèi)核自帶的網(wǎng)絡(luò)驅(qū)動無法驅(qū)動IMX6UL-ALPHA EMMC開發(fā)板的網(wǎng)絡(luò),需要做如下更改

修改LAN8720的復(fù)位引腳驅(qū)動:ENET1復(fù)位引腳ENET1_RST連接在IMX6ULL的SNVS_TAMPER7引腳上; ENET2復(fù)位引腳ENET_RST連接在IMX6ULL的SNVS_TAMPER8引腳上

在設(shè)備樹源碼文件中找到如下代碼段,此處SNVS_TAMPER7/8兩個引腳被初始化為了SPI4的IO,所以需要刪除

########## imx6ull-andyxi-emmc.dts 代碼段 ##########
pinctrl_spi4: spi4grp {
  fsl,pins = <
    MX6ULL_PAD_BOOT_MODE0__GPIO5_IO10 0x70a1
    MX6ULL_PAD_BOOT_MODE1__GPIO5_IO11 0x70a1
    #MX6ULL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x70a1	#刪除此行
    #MX6ULL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x80000000  #刪除此行
  >;
};

在設(shè)備樹源碼文件中找到如下代碼段,此處SNVS_TAMPER7/8兩個引腳被設(shè)置為了SPI4的功能IO,所以需要刪除

########## imx6ull-andyxi-emmc.dts 代碼段 ##########
spi4 {
  compatible = "spi-gpio";
  pinctrl-names = "default";
  pinctrl-0 = <&pinctrl_spi4>;
  #pinctrl-assert-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>; #刪除此行
  ......
  ......
  #cs-gpios = <&gpio5 7 0>;	#刪除此行
};

在設(shè)備樹源碼文件中找到名為“iomuxc_snvs”節(jié)點,在里面添加網(wǎng)絡(luò)復(fù)位引腳配置信息

########## imx6ull-andyxi-emmc.dts 代碼段 ##########
&iomuxc_snvs
{
pinctrl-names =
"default_snvs";
pinctrl-0 = <&pinctrl_hog_2>
;
imx6ul-evk
{
......
......
# enet1 復(fù)位配置
pinctrl_enet1_reset: enet1resetgrp
{
fsl
,pins = <
# used for enet1 reset #
MX6ULL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x10B0
>
;
};
#enet2 復(fù)位配置
pinctrl_enet2_reset: enet2resetgrp
{
fsl
,pins = <
# used for enet2 reset #
MX6ULL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x10B0
>
;
};
};
};

修改LAN8720的網(wǎng)絡(luò)時鐘引腳驅(qū)動

在設(shè)備樹源碼文件中找到如下代碼段,將ENET1和ENET2的網(wǎng)絡(luò)時鐘引腳的電氣屬性值由0x4001b031(默認值)改為0x4001b009

########## imx6ull-andyxi-emmc.dts 代碼段 ##########
pinctrl_enet1: enet1grp {
  fsl,pins = <
    MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0
    MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0
    MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
    MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
    MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0
    MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
    MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
    MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b009#默認為0x4001b031
  >;
};

pinctrl_enet2: enet2grp {
  fsl,pins = <
    MX6UL_PAD_GPIO1_IO07__ENET2_MDC 0x1b0b0
    MX6UL_PAD_GPIO1_IO06__ENET2_MDIO 0x1b0b0
    MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x1b0b0
    MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x1b0b0
    MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0
    MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0
    MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x1b0b0
    MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0
    MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0
    MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4001b009#默認為0x4001b031
  >;
};

修改 fec1和 fec2節(jié)點的 pinctrl1-0屬性

在設(shè)備樹源碼文件中找到“fec1”和“fec2”這兩個節(jié)點,修改其中的“pinctrl-0”屬性值,修改后的代碼如下示

########## imx6ull-andyxi-emmc.dts 代碼段 ##########
&fec1 {
  pinctrl-names = "default";
  pinctrl-0 = <&pinctrl_enet1
		 &pinctrl_enet1_reset>;
  phy-mode = "rmii";
......
  status = "okay";
};

&fec2 {
  pinctrl-names = "default";
  pinctrl-0 = <&pinctrl_enet2
		 &pinctrl_enet2_reset>;
  phy-mode = "rmii";
......
};

修改LAN8720的PHY地址

在設(shè)備樹源碼文件中找到如下代碼段,設(shè)置ENET1的LAN8720A地址(0x0),設(shè)置ENET2的LAN8720A地址(0x1),以及其他相關(guān)設(shè)置,修改后的代碼如下示

########## imx6ull-andyxi-emmc.dts 代碼段 ##########
&fec1
{
pinctrl-names =
"default";
pinctrl-0 = <&pinctrl_enet1
&pinctrl_enet1_reset>
;
phy-mode =
"rmii";
phy-handle = <ðphy0>
;
phy-
reset-gpios = <&gpio5 7 GPIO_ACTIVE_LOW>;#ENET1復(fù)位引腳,低電平有效
phy-
reset-duration = <200>; #復(fù)位低電平持續(xù)時間為200ms
status =
"okay";
};

&fec2
{
pinctrl-names =
"default";
pinctrl-0 = <&pinctrl_enet2
&pinctrl_enet2_reset>
;
phy-mode =
"rmii";
phy-handle = <ðphy1>
;
phy-
reset-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>;#ENET2復(fù)位引腳,低電平有效
phy-
reset-duration = <200>;#復(fù)位低電平持續(xù)時間為200ms
status =
"okay";

mdio
{
#address-cells = <1>;
#size-cells = <0>;

ethphy0: ethernet-phy@0
{#ethernet-phy@后面的數(shù)字式PHY的地址
compatible =
"ethernet-phy-ieee802.3-c22";
#表明PHY芯片是SMSC公司的,內(nèi)核會找到PHY芯片驅(qū)動來驅(qū)動LAN8720A
smsc
,disable-energy-detect;
reg = <0>
; #也表示PHY地址
};

ethphy1: ethernet-phy@1
{#ethernet-phy@后面的數(shù)字式PHY的地址
compatible =
"ethernet-phy-ieee802.3-c22";
#表明PHY芯片是SMSC公司的,內(nèi)核會找到PHY芯片驅(qū)動來驅(qū)動LAN8720A
smsc
,disable-energy-detect;
reg = <1>
;
};
};
};

修改fec_main.c文件

要在 I.MX6ULL上使用LAN8720A,還需要修改內(nèi)核源碼,打開

drivers/net/ethernet/freescale/fec_main.c,找到函數(shù) fec_probe,在 fec_probe 中加入如下代碼

staticintfec_probe(structplatform_device*pdev)
{
structfec_enet_private*fep;
structfec_platform_data*pdata;
structnet_device*ndev;
int i, irq, ret =0;
structresource*r;
conststructof_device_id*of_id;
staticint dev_id;
structdevice_node*np = pdev->dev.of_node,*phy_node;
int num_tx_qs;
int num_rx_qs;
/* 設(shè)置 MX6UL_PAD_ENET1_TX_CLK 和 MX6UL_PAD_ENET2_TX_CLK
   * 這兩個 IO 的復(fù)用寄存器的 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);
......
return ret;
}

配置Linux內(nèi)核,使能LAN8720驅(qū)動

輸入“make menuconfig”,打開圖形化配置解密,選擇使能LAN8720A的驅(qū)動,路徑如下:

-> 設(shè)備驅(qū)動程序 -> 網(wǎng)絡(luò)設(shè)備支持 -> PHY 設(shè)備支持和基礎(chǔ)結(jié)構(gòu) -> 用于 SMSC PHY 的驅(qū)動程序

圖片

修改smsc.c文件

在 Linux中對 LAN8720A進行一次軟復(fù)位,找到LAN8720A的驅(qū)動文件 “drivers/net/phy/smsc.c”,在函數(shù)“smsc_phy_reset”中添加LAN8720A復(fù)位代碼,修改后的代碼如下

staticintsmsc_phy_reset(structphy_device*phydev){
int err, phy_reset;
int msec =1;
structdevice_node*np;
int timeout =50000;
if(phydev->addr ==0)/* 獲取FEC1網(wǎng)卡對應(yīng)的設(shè)備節(jié)點 */{
    np =of_find_node_by_path("/soc/aips-bus@02100000/
				ethernet@02188000");
    if(np ==NULL){
      return-EINVAL;
    }
}

if(phydev->addr ==1)/* 獲取FEC2網(wǎng)卡對應(yīng)的設(shè)備節(jié)點 */{
    np =of_find_node_by_path("/soc/aips-bus@02000000/
				ethernet@020b4000");
    if(np ==NULL){
      return-EINVAL;
    }
}
//從設(shè)備樹中獲取復(fù)位時間
  err =of_property_read_u32(np,"phy-reset-duration",&msec);
/* A sane reset duration should not be longer than 1s */
if(!err && msec >1000)
    msec =1;
  //從設(shè)備樹中獲取復(fù)位IO
  phy_reset =of_get_named_gpio(np,"phy-reset-gpios",0);
  if(!gpio_is_valid(phy_reset))
    return;
  //設(shè)置PHY的復(fù)位IO,復(fù)位LAN8720A
  gpio_direction_output(phy_reset,0);
  gpio_set_value(phy_reset,0);
  msleep(msec);
  gpio_set_value(phy_reset,1);

  int rc =phy_read(phydev, MII_LAN83C185_SPECIAL_MODES);
  if(rc <0)
    return rc;
  /* If the SMSC PHY is in power down mode, then set it
   * in all capable mode before using it.*/
  if((rc & MII_LAN83C185_MODE_MASK)==
	MII_LAN83C185_MODE_POWERDOWN){
    /* set "all capable" mode and reset the phy */
    rc |= MII_LAN83C185_MODE_ALL;
    phy_write(phydev, MII_LAN83C185_SPECIAL_MODES, rc);
  }
  //未修改之前在上面的函數(shù)里面,只有Powerdown模式時才會軟復(fù)位LAN8720A
  //此處將其移出來,這樣每次調(diào)用smsc_phy_reset函數(shù),LAN8720A都會被軟復(fù)位
  phy_write(phydev, MII_BMCR, BMCR_RESET);
  /* wait end of reset (max 500 ms) */
  do{
    udelay(10);
    if(timeout--==0)
      return-1;
    rc =phy_read(phydev, MII_BMCR);
  }while(rc & BMCR_RESET);
return0;
}

因為smsc_phy_reset函數(shù)中用到了gpio_direction_output和gpio_set_value函數(shù),所以需要在“smsc.c”中添加如下頭文件

#include 
#include

網(wǎng)絡(luò)驅(qū)動測試:修改好設(shè)備樹和內(nèi)核后重新編譯,下載并啟動開發(fā)板后,使用如下步驟進行測試

輸入"ifconfig -a"來查看開發(fā)板中存在的網(wǎng)卡(eth0已打開)

圖片

輸入"ifconfig eth1 up"命令,可打開eth1(ENET1)

圖片

使用"ifconfig eth1 192.168.10.51"命令,配置網(wǎng)卡IP地址,更換網(wǎng)口,成功掛載文件系統(tǒng)后,ping一下Ubuntu主機(192.168.10.100),ping成功說明網(wǎng)絡(luò)驅(qū)動修改成功

圖片

4.Linux內(nèi)核移植總結(jié)

Linux內(nèi)核移植的步驟總結(jié)如下:

  • 一般情況下,設(shè)計自已的硬件時都會參考半導(dǎo)體廠商官方的開發(fā)板
  • 在半導(dǎo)體廠商維護的Linux內(nèi)核中查找可以參考的板子(半導(dǎo)體廠商官方開發(fā)板)
  • 編譯出參考板子對應(yīng)的zImage和.dtb文件,嘗試在自已的板子上啟動
  • 大部分情況下會啟動起來,如果不能的話就需要調(diào)試Linux內(nèi)核
  • 修改相應(yīng)的驅(qū)動,NAND/EMMC/SD卡等,內(nèi)核已經(jīng)提供,重點是網(wǎng)絡(luò)驅(qū)動,需要根據(jù)自已的外設(shè)PHY芯片設(shè)置復(fù)位引腳、地址信息等
  • Linux內(nèi)核啟動以后需要根文件系統(tǒng),如果沒有的話系統(tǒng)會崩潰

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1366

    瀏覽量

    40235
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11232

    瀏覽量

    208949
  • 移植
    +關(guān)注

    關(guān)注

    1

    文章

    377

    瀏覽量

    28111
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    633

    瀏覽量

    29147
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4959

    瀏覽量

    97214
收藏 人收藏

    評論

    相關(guān)推薦

    #硬聲創(chuàng)作季 #Linux 學(xué)Linux-3.17 Linux內(nèi)核移植(NAND版本)-1

    LinuxLINUX內(nèi)核
    水管工
    發(fā)布于 :2022年11月10日 19:54:28

    #硬聲創(chuàng)作季 #Linux 學(xué)Linux-3.17 Linux內(nèi)核移植(NAND版本)-2

    LinuxLINUX內(nèi)核
    水管工
    發(fā)布于 :2022年11月10日 19:54:50

    【PDF】基于S3C2440的Linux內(nèi)核移植和yaffs2文件系統(tǒng)制作

    `【PDF】基于S3C2440的Linux內(nèi)核移植和yaffs2文件系統(tǒng)制作`
    發(fā)表于 03-11 09:56

    mini2440的linux內(nèi)核移植手冊

    本帖最后由 eehome 于 2013-1-5 10:03 編輯 mini2440的linux內(nèi)核移植手冊
    發(fā)表于 12-19 15:59

    linux 內(nèi)核移植問題 make menuconfig

    linux內(nèi)核移植問題make menuconfig
    發(fā)表于 08-25 13:25

    linux內(nèi)核移植

    linux內(nèi)核移植教程
    發(fā)表于 10-15 21:24

    Linux內(nèi)核移植

    Linux內(nèi)核移植 上一節(jié)介紹了u-boot的移植,這一節(jié)來介紹Linux內(nèi)核移植。 工具和源碼在路徑:F:\韋東山\CD1_主光盤\sys
    發(fā)表于 12-25 14:43

    認識Linux內(nèi)核移植

    (一)為什么要移植內(nèi)核?這也是嵌入式的特點,因為不像x86的機器,隨便一臺機器就能安裝個ubuntu的linux操作系統(tǒng),針對不同的arm開發(fā)板,有很多的硬件設(shè)置都不一樣,所以linux
    發(fā)表于 04-16 14:43

    如何以低成本將Linux 內(nèi)核移植到嵌入式處理系統(tǒng)

    隨著基于 Linux 的嵌入式系統(tǒng)得到日益廣泛的應(yīng)用,人們不禁要問,類似 Linux 這樣的免費開放源代碼操作系統(tǒng)的真正成本到底是多少?要將 Linux 內(nèi)核移植到定制嵌入式處理系統(tǒng),
    發(fā)表于 07-19 09:27 ?845次閱讀
    如何以低成本將<b class='flag-5'>Linux</b> <b class='flag-5'>內(nèi)核移植</b>到嵌入式處理系統(tǒng)

    linux內(nèi)核移植與優(yōu)化

    發(fā)表于 09-13 23:42 ?9次下載

    嵌入式Linux內(nèi)核移植詳解(頂嵌)

    嵌入式內(nèi)核移植步驟詳解 含配置含義及內(nèi)容等方面
    發(fā)表于 11-20 16:00 ?19次下載

    基于DSP的嵌入式Linux內(nèi)核移植的研究與實現(xiàn)_王曉東

    基于DSP的嵌入式Linux內(nèi)核移植的研究與實現(xiàn)_王曉東
    發(fā)表于 03-19 11:45 ?1次下載

    Linux內(nèi)核移植相關(guān)代碼解析

    本文通過整理之前研發(fā)的一個項目(ARM7TDMI +uCLinux),分析內(nèi)核啟動過程及需要修改的文件,以供內(nèi)核移植者參考。整理過程中也同時參考了眾多網(wǎng)友的帖子,在此謝過。由于整理過程匆忙,難免錯誤
    發(fā)表于 11-07 11:29 ?0次下載

    嵌入式Linux內(nèi)核移植相關(guān)代碼分析

    本文通過整理之前研發(fā)的一個項目(ARM7TDMI + uCLinux),分析內(nèi)核啟動過程及需要修改的文件,以供內(nèi)核移植者參考。整理過程中也同時參考了眾多網(wǎng)友的帖子,在此謝過。由于整理
    發(fā)表于 04-02 14:37 ?262次閱讀

    如何實現(xiàn)Linux內(nèi)核移植和yaffs2根文件系統(tǒng)制作

    本文檔的主要內(nèi)容詳細介紹的是如何實現(xiàn)Linux內(nèi)核移植和yaffs2根文件系統(tǒng)制作。
    發(fā)表于 03-24 09:12 ?9次下載