嵌入式linux学习笔记(一)

本文记录了从头移植Linux内核到jz2440平台的过程,包括修改Makefile设置,解决编译错误,调整时钟初始化参数和更新MTD分区。详细介绍了如何解决在编译过程中遇到的问题,以及如何根据实际的u-boot分区调整MTD配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

        最近开始学习linux驱动编写,目前直接使用jz2440已移植好的系统配合视频开始学习驱动编写,但是总是出现这样那样的问题。于是决定重头开始,先自己移植内核,在开始驱动学习。

        今天参照《嵌入式linux完全应用手册》进行驱动移植。

        cross_compile:4.9.3(下载地址:https://launchpad.net/gcc-arm-embedded/+download)。

        kernel:2.6.22.6

        1、先修改顶层目录下的Makefile文件:

         ARCH = arm

         CROSS_COMPILE = arm-none-eabi-

        2、输入make s3c2410_defconfig进行编译,在编译的过程中发生错误。

       

  CC      fs/binfmt_aout.o
In file included from include/linux/spinlock.h:53:0,
                 from include/linux/module.h:9,
                 from fs/binfmt_aout.c:7:
fs/binfmt_aout.c: In function 'load_aout_binary':
include/linux/a.out.h:141:38: error: 'SEGMENT_SIZE' undeclared (first use in this function)
 #define _N_SEGMENT_ROUND(x) ALIGN(x, SEGMENT_SIZE)
                                      ^
include/linux/kernel.h:36:37: note: in definition of macro '__ALIGN_MASK'
 #define __ALIGN_MASK(x,mask) (((x)+(mask))&~(mask))
                                     ^
include/linux/a.out.h:141:29: note: in expansion of macro 'ALIGN'
 #define _N_SEGMENT_ROUND(x) ALIGN(x, SEGMENT_SIZE)
                             ^
include/linux/a.out.h:148:9: note: in expansion of macro '_N_SEGMENT_ROUND'
      : (_N_SEGMENT_ROUND (_N_TXTENDADDR(x))))
         ^
fs/binfmt_aout.c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值