移植的基本思路是:先编译后调试
首先修改配置文件,如:Makefile 、 Kconfig等。这样就可以进行内核的配置,然后可以编译。
编译完之后,开始从代码上一步步的进行调试。
修改配置文件:
./arch/mips/Kconfig
这个构架相关的配置文件实则上就是主配置文件,作用是在make menuconfig的时候定义好一些宏,这些宏的作用就是为了加入平台相关的代码而作的一些内核配置选择。
首先作一个基本的认识:
menu/endmenu 表示主菜单中菜单选项的开始与结束,也就是说中间部分是在这个菜单选项被打开后显示出来的。
choice/endchoice 表示菜单里的某个子菜单,属于某个子菜单是通过depends on A为指定(假设是A),也就是说这部分内容是依赖于A。
config 表示是一个条目,例如,config A。那么配置完之后,会在auto.config文件中生成一个CONFIG_A的宏。
select 表示使能这个条目,或者说这个条目依赖于这个config。
depends on 表示这个config依赖于这个条目。
1)在menu“”Machine selection”添加:
config SOC32101_BOARDS bool "Support for SOC CAS SOC3210 1 generic boards" select SYS_HAS_CPU_SOC32101 select DMA_NONCOHERENT select BOOT_ELF32 select BOARD_SCACHE select HW_HAS_PCI select ISA select IRQ_CPU select GENERIC_IOMAP select SYS_SUPPORTS_32BIT_KERNEL select SYS_SUPPORTS_64BIT_KERNEL select SYS_SUPPORTS_LITTLE_ENDIAN select SYS_SUPPORTS_HIGHMEM help ICT experimental board, which uses ict fpga north bridge and soc32101 CPU. choice prompt "subsystem type" depends on SOC32101_BOARDS config SOC_SOC bool "soc32101 gc soc support" endchoice
2)在menu“CPU selection”中添加
choice prompt "CPU type" default CPU_SOC32101 #修改默认CPU config CPU_SOC32101 #添加CPU bool "SOC32101" depends on SYS_HAS_CPU_SOC32101 select CPU_SUPPORTS_32BIT_KERNEL ... ... endchoicePS:通过上面两步的配置,我们得到了三个宏:CONFIG_SOC32101_BOARDS、CONFIG_SOC_SOC、CONFIG_CPU_SOC32101,它们在./include/config/auto.conf里定义。
--龙芯嵌入式系列开发板更多信息请关注 http://shop107479358.taobao.com
--龙芯1B开发板: http://item.taobao.com/item.htm?spm=a1z10.1.w4004-4678790104.8.WBYZuT&id=36562593290