日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

uboot和linux内核移植,Uboot与kernel移植总结

發布時間:2025/5/22 linux 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 uboot和linux内核移植,Uboot与kernel移植总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

設置uimage入口:由于一個可執行的Image必須有一個入口點,并且只能有一個全局入口,通常這個入口放在ROM(Flash)的0x0地址,因此,必須通知編譯器以使其知道這個入口,該工作可通過修改連接器腳本來完成。

要理解程序的入口地址,自然想到的是連接文件,首先看看開發板相對于某個開發板的連接文件"/board/你的開發板/u-boot.lds"

1.修改頂層makefile和board.cfg:入口makefile中添加如下新內容,因為需要執行make?xxx_config配置自己的板子---->在單板的數據庫boards_cfg中添加自己單板的信息;

qljt2440_config?:?unconfig?@$(MKCONFIG)?$(@:_config=)?arm?arm920t?qljt2440?qljt?s3c24x0

2:添加include/configs/xxboard.h和board/Samsung/xx_board目錄:在?include/configs/中建立開發板所需的頭文件xxx.h。

在頭文件結尾處添加如下宏定義:

#define?CONFIG_S3C2440_NAND_BOOT?1

#define?STACK_BASE????0x33f00000

#define?STACK_SIZE????0x8000

--->在board/目錄下建立自己的目錄:該目錄下含lowlevel_init.s、uboot.lds,config.mk及makefile,flash.c和xxxboard.c

此目錄下修改flash.c、xxxboard.c分別保證flash讀寫和GPIO控制/PLL/flash初始化函數,makefile中添加flash.o和xxxboard.o,根據開發板內存區的配置修改lowlevel_init.S和uboot.lds;

3.修改start.s中部分寄存器地址的定義、時鐘設置。

所以@$(MKCONFIG)?–A?$(@:_config=)分解出來就是mkconfig?–A?smdk4412,它的意思就是進入當前目錄下的mkconfig文件并且傳遞兩個參數(-A,smkd4412)給它。

Boards_cfg為各單板的數據庫文件,mkconfig讀取數據庫文件并初始化ARCH等系統變量;

內核移植

============================================================

Uboot從C函數跳到kernel的head.s匯編(用匯編因為這部分代碼會讀取CPU型號等需要直接讀寫寄存器)--->C函數跳到匯編,匯編再跳到C函數;

內核移植必不可少的修改

1.修改機器碼:

內核的機器碼在arch/arm/tools/mach-types(機器碼庫)+arch/arm/mach-s3c2440/mach_smdk2440.c文件,將其“MACHINE_START(S3C2440,?"SMDK2440")”中的第一項改為與uboot碼值對應的宏,在這里是S3C2440;

u-boot的機器碼是在arch\arm\include\asm\mach-types.h,代碼在board/xxx/xxx_board.c

Uboot的機器碼一定要修改成與內核的一致,因為內核head.S中會檢查uboot傳來的機器碼與MACHINE_START(S3C2440,?"SMDK2440")中的機器碼是否一致。

2.修改時鐘

arch/arm/mach-s3c2440/mach-smdk2440.c

修改s3c24xx_init_clocks(12000000);

3.修改makefile中的ARCH和編譯器類型:

ARCH??=?arm

CROSS_COMPILE??=?arm-linux-

4.使用S5PV210處理器的默認選項,然后就可以make生成uimage了

arch/arm/configs文件夾中有許多命名為xxx_defconfig的配置文件,如果運行make?xxx_defconfig,當前.config文件會由xxx_defconfig文件生成。

Kbuild系統:是一個編譯框架(makefile框架,因為是基于make編譯工具)

1.obj-?和xxx-objs:obj-?指定編譯什么,怎么編譯?其中的“?”可能是“y”或“m”,“y”指定把對象編譯進內核中,“m”指定把對象編譯為模塊。語法如下;?????obj-??=?$(target).o(target.o為某個o文件,也可能是多個o文件即xxx-objs);

xxx-objs指定了編譯對象需要的文件,一般只有在源文件是多個時才需要它。

#drivers/isdn/i4l/Makefile

obj-$(CONFIG_ISDN)?+=?isdn.o

isdn-objs?:=?isdn_net_lib.o?isdn_v110.o?isdn_common.o

2.EXTRA_CFLAGS:有時需要連接內核源代碼外部的系統頭文件,但Kbuild系統默認的系統頭文件都在內核源代碼內部,如何使用外部的頭文件呢?

EXTRA_CFLAGS可以給Kbuild系統添加外部系統頭文件,

EXTRA_CFLAGS?+=?$(ext_include_path)

3.lib-?:所有用lib-y列出的objects在那個文件夾中被綜合進單獨的一個庫,lib-y的使用方法通常被限制在lib/和arc/*/lib中。

#arch/i386/lib/Makefile

lib-y????:=?checksum.o?delay.o

Make?menuconfig時scripts目錄下工具會讀取各目錄下的kconfig(定義了makefile中會用到的變量)并形成菜單;

Make?menuconfig或make?xxx_defconfig后產生.config,.config中的變量都是已定義并配置過的為各子目錄的makefile所用。

注:為子目錄添加新kconfig時,需在父目錄的kconfig中添加source“source?"arch/arm/父目錄/子目錄/Kconfig"”

注:移植內核時添加flash驅動,為何是修改arch/arm/plat-s3c24xx/commond-smdk.c文件就行呢?--------->

Vmlinux---->Image---->zImage---->uImage

總結

以上是生活随笔為你收集整理的uboot和linux内核移植,Uboot与kernel移植总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 四虎影院永久地址 | 少妇粉嫩小泬白浆流出 | 日韩手机在线观看 | 精品国产中文字幕 | 神马午夜51| 2020国产精品 | 啪啪综合 | 成人毛片100部免费看 | 青青草在线视频免费观看 | 午夜寂寞影院在线观看 | 成人在线短视频 | 91成人品| 无码免费一区二区三区免费播放 | 成人影视免费 | 麻豆av一区二区三区在线观看 | 久久久久久久av | 日本中文字幕影院 | 成人欧美在线视频 | 亚洲成年人免费观看 | 国产91熟女高潮一区二区 | 亚洲女优在线观看 | 国产乱子伦精品视频 | 精品熟女一区二区三区 | 欧美不卡高清 | 久久精品国产精品亚洲色婷婷 | 中文字幕av免费在线观看 | 国产一线二线三线女 | 青青五月天 | 黄色aa毛片| 亚洲日本国产 | 高跟鞋肉丝交足91 | 日韩在线精品强乱中文字幕 | 伊人久久一区二区三区 | 日本一区二区三区中文字幕 | 亚洲欧美日韩高清 | 日本大片黄 | 国产男男一区二区三区 | www.亚洲欧美 | 日本一区精品视频 | 日韩精品一区二区在线观看 | 日韩午夜精品视频 | 欧美在线综合 | 欧美粗大猛烈老熟妇 | 九九视频网 | 六月激情综合 | 日韩视频专区 | 久久精品视频中文字幕 | 亚洲一区 | 成人av综合 | 国产精品美女久久久久av爽 | 婷婷国产视频 | 欧美爱爱爱| 富二代成人短视频 | 亚洲第一色网 | 国产高清无密码一区二区三区 | 久久99久久99精品免视看婷婷 | 免费在线观看亚洲 | 最新国产毛片 | 国产一区二区色 | 亚洲最大av网站 | 国产色无码精品视频国产 | 精品视频在线一区二区 | 一本大道av | 亚洲av无码一区二区三区人 | 一级片aaaaa 国产又黄又粗又猛又爽 | 国产日韩欧美精品在线观看 | 青春草在线视频观看 | 捅肌肌 | 久久久区 | 蜜桃视频一区二区三区 | 激情久久综合 | youjizz国产 | 亚洲成人一区 | 特黄aaaaaaaaa真人毛片 | 裸体av淫导航| 国产精品视频a | 日韩毛毛片 | 黄色一级大片免费看 | 国产精品成人久久久久 | 久久中文字幕无码 | 日本视频免费在线 | 精品国产一二三区 | 欧美亚洲另类小说 | 国产高清精品一区二区三区 | 一级激情视频 | 日本高清不卡二区 | 另类综合在线 | 手机在线看黄色 | 二区三区在线视频 | 中文字幕乱妇无码av在线 | 欧美jizzhd精品欧美18 | 在线天堂www在线国语对白 | 精品久久久中文字幕人妻 | 成人你懂的| 香蕉成人网 | 亚洲成人一二区 | 成人一级黄色片 | 国产综合精品视频 | 日韩av在线免费播放 |