[linux kernel]内核移植过程记录

发布者:keiss2018最新更新时间:2022-07-14 来源: csdn关键字:linux  kernel  内核  移植过程 手机看文章 扫描二维码
随时随地手机看文章

系统版本:Ubuntu18.04-64


编译器版本:gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)


uboot版本:2018.07 -linux4sam_6.0


板子型号:at91sama5d3x-xplained


MCU型号:sama5d36


内核移植主要是裁剪一些不需要的功能,使用对应的交叉工具链把内核重新编译,设备树文件按照硬件去配置。


一、配置文件路径


arch/arm/configs/sama5_defconfig


//配置文件路径

arch/arm/configs/sama5_defconfig


//声明环境变量,指定交叉编译器

$ export CROSS_COMPILE=arm-linux-gnueabi-


//先按照默认配置编译内核文件,看是否会报错,编译出来的文件先进行烧录,是否能正确引导文件系统;

$ make ARCH=arm sama5_defconfig

$ make ARCH=arm


//图形化配置窗口调出

$ make ARCH=arm menuconfig


//单独编译设备树文件,生成dtb文件

$ make ARCH=arm dt


二、把编译的zImage和dtb文件烧录板子,根据打印信息,分析出硬件驱动的情况。


1、内核接收uboot传递过来的分区信息,要和设备树中的分区一致,后面再细讲;


Kernel command line: console=ttyS0,115200 earlyprintk mtdparts=atmel_nand:256k(bootstrap)ro,768k(uboot)ro,256K(env_redundant),256k(env),512k(dtb),6M(kernel)ro,-(rootfs) rootfstype=ubifs ubi.mtd=6 root=ubi0:rootfs


2、GPIO控制器驱动OK


AT91: PM: standby: standby, suspend: ulp0

gpio-at91 fffff200.gpio: at address (ptrval)

gpio-at91 fffff400.gpio: at address (ptrval)

gpio-at91 fffff600.gpio: at address (ptrval)

gpio-at91 fffff800.gpio: at address (ptrval)

gpio-at91 fffffa00.gpio: at address (ptrval)

pinctrl-at91 ahb:apb:pinctrl@fffff200: initialized AT91 pinctrl driver


3、DMA通道生效


at_hdmac ffffe600.dma-controller: Atmel AHB DMA Controller ( cpy set slave ), 8 channels

at_hdmac ffffe800.dma-controller: Atmel AHB DMA Controller ( cpy set slave ), 8 channels


4、USB控制器驱动注册成功


usbcore: registered new interface driver usbfs

usbcore: registered new interface driver hub

usbcore: registered new device driver usb


5、i2C总线驱动模型注册成功


at91_i2c f0014000.i2c: using dma0chan0 (tx) and dma0chan1 (rx) for DMA transfers

at91_i2c f0014000.i2c: AT91 i2c bus driver (hw version: 0x402).

at91_i2c f0018000.i2c: using dma0chan2 (tx) and dma0chan3 (rx) for DMA transfers

at91_i2c f0018000.i2c: AT91 i2c bus driver (hw version: 0x402).


6、蓝牙驱动注册成功


Bluetooth: Core ver 2.22

NET: Registered protocol family 31

Bluetooth: HCI device and connection manager initialized

Bluetooth: HCI socket layer initialized

Bluetooth: L2CAP socket layer initialized

Bluetooth: SCO socket layer initialized


7、串口、SPI、CAN驱动注册


ssc f0008000.ssc: Atmel SSC device at 0x(ptrval) (irq 20)

atmel_usart_serial.0.auto: ttyS2 at MMIO 0xf0020000 (irq = 24, base_baud = 4125000) is a ATMEL_SERIAL

atmel_usart_serial.1.auto: ttyS0 at MMIO 0xffffee00 (irq = 34, base_baud = 8250000) is a ATMEL_SERIAL

console [ttyS0] enabled

atmel_spi f0004000.spi: DMA TX channel not available, SPI unable to use DMA

atmel_spi f0004000.spi: Atmel SPI Controller using PIO only

m25p80 spi0.0: unrecognized JEDEC id bytes: 00, 00, 00

atmel_spi f0004000.spi: Atmel SPI Controller version 0x213 at 0xf0004000 (irq 19)

libphy: Fixed MDIO Bus: probed

CAN device driver interface

at91_can f000c000.can: device registered (reg_base=(ptrval), irq=42)


8、GMAC控制器上面的网络芯片没有驱动成功,因为id读取为全0xFF;


libphy: MACB_mii_bus: probed

Generic PHY f0028000.ethernet-ffffffff:01: attached PHY driver [Generic PHY] (mii_bus:phy_addr=f0028000.ethernet-ffffffff:01, irq=POLL)

macb f0028000.ethernet eth0: Cadence GEM rev 0x00020119 at 0xf0028000 irq 43 (ee

关键字:linux  kernel  内核  移植过程 引用地址:[linux kernel]内核移植过程记录

上一篇:[linux kernel]内核图形化裁剪配置
下一篇:[linux 底层]u-boot EMMC驱动

推荐阅读最新更新时间:2024-11-20 00:16

linux 2.6.22.6 移植
板子是国嵌的 GQ2440 主要移植步骤参考 韦东山老师的《嵌入式linux应用开发完全手册》 1、下载内核,打补丁 2、是用config_ok 配置内核 3、在 include/asm-arm/mach-types.h 中修改 MACH_TYPE_S3C2440 的值为 1999 因为MACH_TYPE_S3C2440 对应的机器结构在 arch/arm/mach-s3c2440/mach-smdk2440.c 中定义 所以 要把这个文件编译进内核,所以配置中有:System Type - s3c2440 Machines - SMDK2440 4、在arch/arm/mach-s3c2440/mach-smdk2440.c
[单片机]
基于Linux和MiniGUI的某型指控终端人机接口设计
   0 引言   随着武器装备信息化程度的提高,各种嵌入式信息装备得到了广泛应用。作为未来战场主要作战平台的各种战斗车辆,其车载指挥控制平台的设计得到了广泛重视。   一个车载指控平台的功能主要体现在以下几个方面:监控、显示车辆的技术状态;车际间的指控、通信;车辆的定位、导航;各种文电处理等。本文将介绍一个基于ARM和MiniGUI的车载指控系统人机接口部分的设计,这个系统初步实现了上述车载指控平台的主要功能。    l 软硬件的选型   受车辆内部空间的限制,指挥控制终端必须做到小型化,嵌入式。ARM作为一种已经在多个领域得到非常广泛应用的架构,这里采用它是一个很好的选择。该课题选择在国内有着较广泛市场的SAM
[嵌入式]
无缝集成高性能ARM内核 TI MCU解决方案赋能汽车电气化
TI可以为客户提供更多样的选择。2022年12月9日,由盖世汽车主办的2022第三届混动技术发展论坛中,德州仪器中国区MCU产品技术经理卢璟介绍,为应对高压化、集成化、高安全性等电控领域的行业需求,TI推出的第3代C2000™DSP和基于ARM内核的AM263X实时MCU产品, 提供多种引脚数量、存储器和封装选项,满足集成通信、功能安全和信息安全等多种功能需求,旨在实现更高性能和更经济实用的实时控制效果。 卢 璟 | 德州仪器中国区MCU产品技术经理 以下为演讲内容整理: 德州仪器是一家半导体芯片公司,我们的业务涵盖了芯片的研发、制造、测试、销售等各个环节。TI旗下有8000多种模拟和数字产品,在全球也有近10
[汽车电子]
无缝集成高性能ARM<font color='red'>内核</font> TI MCU解决方案赋能汽车电气化
arm驱动linux并发与竞态并发控制
《 linux并发与竞态---并发控制》涉及内核驱动函数五个,内核结构体一个,分析了内核驱动函数六个;可参考的相关应用程序模板或内核驱动模板五个,可参考的相关应用程序模板或内核驱动零个 一、并发与竞态 1、并发:多个执行单元同时被执行。例如:同一个test.out可执行程序被n次同时运行 2、竞态:并发的执行单元对共享资源(硬件资源和软件上的全局变量,静态变量等)的访问导致的竞争。 a)静态的列子: char *p;//全局变量 // 读取函数 module_drv_read(struct file *file, constchar __user *buf, size_t count, loff_t * ppos) {copy_
[单片机]
ARM920T_内核MMU与cache应用分析
一、cache分类及应用场合 cache是内存和CPU之间的高速缓冲存储器,其分为icache(指令缓存)和dcache(数据缓存)。如果开启了cache,当CPU运行时会将正在运行的指令地址附近的指令或者数据调入cache,这样当运行下一条指令或用到下一条数据时直接从cache中查找,如果查找不到再访问内存,以此加快CPU执行速度。icache可以直接开启,而dcache需要开启MMU之后才能开启。 在启动文件中开启icache的代码可以放在时钟速度配置完成之后,代码如下: bl enable_icache enable_icache: mrc p15, 0, r0, c1, c0, 0 orr r0,
[单片机]
ARM920T_<font color='red'>内核</font>MMU与cache应用分析
linux MTD系统解析,
MTD,Memory Technology Device即内存技术设备,在Linux内核中,引入MTD层为NOR FLASH和NAND FLASH设备提供统一接口。MTD将文件系统与底层FLASH存储器进行了隔离。 如上图所示,MTD设备通常可分为四层,从上到下依次是:设备节点、MTD设备层、MTD原始设备层、硬件驱动层。 Flash硬件驱动层:Flash硬件驱动层负责对Flash硬件的读、写和擦除操作。MTD设备的Nand Flash芯片的驱动则drivers/mtd/nand/子目录下,Nor Flash芯片驱动位于drivers/mtd/chips/子目录下。 MTD原始设备层:用于描述MTD原始设备的数据结构是
[单片机]
<font color='red'>linux</font> MTD系统解析,
基于Linux系统和ZigBee的智能家居系统
0 引言 随着网络技术和通信技术的不断发展以及人们对生活要求的不断提高,实现家庭智能的远程监控已经成为必然的趋势。国家建设部住宅产业化促进中心提出住宅小区要实现六项智能化要求,其中包括实行安全防范自动化监控管理:对住宅的火灾、有害气体的泄漏实行自动报警;防盗报警系统应安装红外或微波等各种类型报警探测器;系统应能与计算机安全综合管理系统联网;计算机系统能对防盗报警系统进行集中管理和控制。随着GPRS远程通信技术和短距离无线网络通信技术的不断发展和成熟,智能家居的监控技术也逐步成熟,GPRS网络通信业务是通信公司推出的一项数据传输通信业务,在GPRS网络覆盖区域内,传输距离不受限制,通信费用相对低廉,传输速率较快。ZigBee短距离无
[单片机]
基于<font color='red'>Linux</font>系统和ZigBee的智能家居系统
DS1621在Linux下的IIC接口驱动设计
  IIC总线作为一种申行传输总线,其使用连线少,结构简单,是一种应用广泛的高性能总线方式。而Linux作为一个源代码公开、易于裁剪的操作系统,非常适合于嵌入式系统的应用。Linux操作系统下的嵌入式设备驱动,通过IIC总线,实现ARM与外围模块间的协同工作,有着广泛的应用。    1 IIC总线协议以及选用芯片功能   1.1 IIC总线的特点以及工作协议   IIC串行总线由两根信号线组成:一根双向传输的数据线SDA;另一根是时钟线SCL。IIC总线通过简单的结构即能实现半双工的同步数据传输。   IIC总线采用一主多从的运行机制,在同一时间只能有一台设备作为主设备,总线的运行由主设备控制,主设备控制数据的传送
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved