linux移植需要考虑什么

本文详细介绍了嵌入式系统从简单到复杂的不同移植与适配级别,包括基于芯片、微架构和架构的新增电路板任务。内容涵盖了DDR、FLASH、驱动、编译器等方面的Porting工作,以及不同层级的难度挑战和所需技能。
摘要由CSDN通过智能技术生成
推荐文档
难度由低到高分为几个程度
  • 难度1 : 简单
基于某个官方芯片,新增一个电路板

场景
	一般的芯片集成商
	ODM即英语Original Design Manufacturer的缩写,直译为“原始设计制造商”,具体指一家厂商根据另一家产商的要求设计并生产相应产品。
	比如龙旗, 为小米生产手机. 拿的是 高通的方案
	此时 龙旗就要基于高通的骁龙888芯片,新增一个电路板

此时供应商已经提供的porting: // 串口(在SOC里面)肯定是打通的,所以kernel能正常启动到 用户init进程
	1. 母板的porting 

此时需要做的porting:
	1. 相较原厂的母板,如果换DDR,要做DDR的porting 		// 一般不换,或源码本来就支持多个DDR(就不用porting)
	2. 相较原厂的母板,此时换FLASH,要做FLASH的porting 	// 一般不换,或源码本来就支持多个DDR(就不用porting)
	3. ...
	4. 肯定不会换SOC,所以肯定不需要做SOC的porting
  • 难度2 : 复杂
// 主要是 driver(注意:mach-xxx下的描述都是设备描述,不是驱动描述,已经被dts取代) 下的 .c 和 dts 
基于某个微架构,新增一个芯片(同时增加一个电路板)
场景
	比如高通卖方案给龙旗
	此时 高通拿的是ARM的微架构(cortex-A78), 新增一个芯片(骁龙888)

此时供应商已经提供的porting:
	1. ARM架构及微架构的porting
	2. 编译器的porting
	
此时需要做的porting:
	1. 片上控制器的porting
	2. 难度1的所有porting
  • 难度3 : 超级复杂
// TODO ARM没有微架构相关的代码
// ARMv7 的代码适用于所有v7 的 微架构, 不存在还要 配置 微架构config 的情况
基于某个架构,新增一个微架构(同时新增一个芯片和电路板)

场景
	比如ARM卖IP给高通
	此时 ARM 基于 ARMv8 新增一个微架构 cortex-A78

此时供应商已经提供的porting:
	1. ARM架构的porting
	2. 编译器中ARM架构的porting
	
此时需要做的porting:
	1. ARM微架构porting
	2. 编译器中ARM微架构的porting
	3. 难度2的所有porting

  • 难度4: 史诗级复杂
新增一个架构(同时新增一个微架构,芯片和电路板)
场景
	比如ARM,RISCV
	ARM之前(2020年及以前)是没有ARMv9的,ARM新增了ARMv9架构
	RISCV架构之前(2011年之前)是没有的,RISCV基金会新增了RV32和RV64架构

此时供应商已经提供的porting:
	1. 无
	
此时需要做的porting:
	1. ARM架构porting // 参考 [linux arch 提供的函数与宏](https://blog.csdn.net/u011011827/article/details/122557613)
	2. 编译器中ARM架构的porting
	3. 难度3的所有porting
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值