1. 建立Uboot的SI工程
1.1首先给uboot打上补丁,然后来生成压缩文件

tar cjf u-boot-1.1.6_jz2440.tar.bz2 u-boot-1.1.

1.2 编译uboot

make 100ask24x0_config    //使用打好补丁的配置文件来配置
make

1.3然后压缩文件拖到windows里,创建SI工程

1.4在board目录下只添加:

./Board/100ask24x0       //2440单板相关文件夹

1.5在Cpu目录下只添加:

./Cpu/Arm920t/S3c24x0

并添加./Cpu/Arm920t文件夹下的源代码:

1.6在Include目录下只添加:
首先添加./Include下的顶层源代码,以及./Include/Asm-arm下的顶层源代码(取消包含顶层子目录以及递归添加,如下图所示)

Add tree:

./Include/Asm-arm/Arch-s3c24x0
./Include/Asm-arm/Proc-armv
./Include/Pcmcia
./Include/Linux
./Include/Jffs2
./Include/Galileo
./Include/Cramfs
./Include/Configs/100ask24x0.h

1.7删除不需要的库

./Lib_ppc
./Lib_nios2
./Lib_nios
./Lib_mips
./Lib_microblaze
./Lib_m68k
./Lib_i386
./Lib_blackfin
./Lib_avr32

1.8 最后点击synchronize files 创建source insight工程

1.9设置si,使能够查看汇编文件
点击Options->Document Options,设置如下:

2 创建内核source sight 工程

2.1首先给内核打上补丁,然后来生成压缩文件

tar xjf linux-2.6.22.6.tar.bz2
cd linux-2.6.22.6/
patch -p1 <../linux-2.6..6_jz2440.patch //对linux-2.6.22.6文件进行打补丁
cp config_ok .config // 补丁打好后,就会有一个config_ok,通过cp,来更换内核配置信息
cd ..
tar -cjf linux-2.6..6_jz2440.tar.bz2 linux-2.6.22.6

2.2编译内核

2.2.1 编译内核之前还需要修改.config来配置内核,配置有3种:

  • (1)通过make menuconfig 直接从头到尾配置.config文件
  • (2)通过make s3c2410_deconfig 类似的命令在默认的配置上进行自动修改.config文件
  • (3)使用厂家提供的配置config_ok文件覆盖.config文件

其中s3c2410_deconfig 位于 arch/arm/configs目录

2.2.2 最后使用make uImage进行编译即可((因为uboot支持的内核需要有头部uImage)

参考: 第3阶段——内核启动分析之内核编译试验(1)

 

2.3然后将压缩文件拖到windows里,创建SI工程

2.4 点击 “add all” 添加所有文件,后面再慢慢删去与2440芯片没用的文件

2.5 点击Remove Tree 删除Arch文件夹,再添加与2440相关的硬件核心代码以及其它公用的代码

  Arch:包含了平台,处理器相关的代码,并包括boot文件夹。

add tree:

linux-2.6.22.6/arch/arm/boot                   //(启动配置文件)
linux-2.6.22.6/arch/arm/common // (公共文件)
linux-2.6.22.6/arch/arm/configs // (配置文件)
linux-2.6.22.6/arch/arm/kernel //(内核文件)
linux-2.6.22.6/arch/arm/lib // (固件库)
linux-2.6.22.6/arch/arm/mach-s3c2440 // (machine 设备,2440设备库)
linux-2.6.22.6/arch/arm/mach-s3c2410 //(2440中部分调用了2410设备库)
linux-2.6.22.6/arch/arm/Mm //(内存管理文件)
linux-2.6.22.6/arch/arm/nwfpe
linux-2.6.22.6/arch/arm/oprofile //(性能分析工具文件)
linux-2.6.22.6/arch/arm/plat-s3c24xx //(s3c24系列平台文件)
linux-2.6.22.6/arch/arm/tools //(常用工具文件)
linux-2.6.22.6/arch/arm/vfp //(浮点运算文件)

2.6 点击Remove Tree 删除Include文件夹,再添加与2440相关的头文件

  Include: 包括了核心的大多数include文件。另外对于每种支持的体系结构分别有一个子目录。

添加:

linux-2.6.22.6/include/acpi                        //(高级配置与电源接口文件)
linux-2.6.22.6/include/asm-arm //(只添加这个目录下的头文件)
linux-2.6.22.6/include/asm-arm/arch-s3c2410 //(2410处理器架构)
linux-2.6.22.6/include/asm-arm/hardware //(硬件相关头文件)
linux-2.6.22.6/include/asm-arm/mach //(具体的设备文件)
linux-2.6.22.6/include/asm-arm/plat-s3c24xx //(s3c24系列平台头文件)

以及添加include目录下除了asm-xx外的其它通用文件

2.7 最后点击synchronize files    创建source insight工程

建立uboot,内核的SI工程(1)的更多相关文章

  1. 第3阶段——内核启动分析之创建si工程和分析stext启动内核函数(4)

    目标: (1)创建Source Insight 工程,方便后面分析如何启动内核的 (2)分析uboot传递参数,链接脚本如何进入stext的  (3) 分析stext函数如何启动内核:  (3.1) ...

  2. 18.17 U-Boot+内核移植

    18.17.1 移植U-Boot-2012.04.08 1.下载.建立source insight工程.编译.烧写.如果无运行分析原因. $ .tar.bz2 $ cd u-boot- $ make ...

  3. 【Android 系统开发】 编译 Android文件系统 u-boot 内核 并烧写到 OK-6410A 开发板上

    博客地址 : http://blog.csdn.net/shulianghan/article/details/40299813  本篇文章中用到的工具源码下载 : -- ok-6410A 附带的 A ...

  4. KEIL建立新唐MCU的工程时,移植官网程序报错变量未定义问题解决方法

    最近在使用新唐的MCU,新唐的MCU使用还算方便,你安装好KEIL之后再安装 Nu-Link_Keil_Driver_V3.00.6909 驱动即可建立新唐的MCU工程,注意的是因为新唐MCU是C51 ...

  5. idea破解版安装、配置jdk以及建立一个简单的maven工程

    idea破解版安装.配置jdk,配置jdk环境变量以及建立一个简单的maven工程 一.idea破解版以及配置文件下载 下载网址:https://pan.baidu.com/s/1yojA51X1RU ...

  6. 【rt-thread】1、快速建立rt-thread nano最小裁剪工程

    快速建立rt-thread nano最小裁剪工程 使用keil5建立 1.下载rt-thread 3.03版本,3.03程序占用最小 2.使用 CubeMX 配置工程 3.选择添加rt-thread ...

  7. 【AT91SAM3S】建立基于SAM3S库的工程并点亮LED

    习惯了ST的库,猛然间看到ATMEL的库,有点无从下手.这几天参考这示例工程,终于建立了一个使用ATMEl库的工程. 软件库版本: 软件平台:MDK470A 硬件平台:英蓓特 EB-SAM3S MCU ...

  8. jz2440烧写开发板uboot,内核和文件系统等的相关命令

    下载文件{ftpget -u 1 -p 1 192.168.2.110 a.out a.outnfs 30000000(destination) 192.168.2.109:/home/fs/work ...

  9. U-Boot 内核 (一)

    1.首先安装Vmware,安装Ubuntu 15.04 (安装时记住用户名和密码) 2.终端命令Ctrl+Alt+T 3.进行准备工作 安装工具 sudo apt-get update sudo ap ...

随机推荐

  1. 大数据之hiveSQL

    最近增加了学习java基础算法,包括几种排序算法,二叉树(前序,后序,中序),队列和栈,bmp搜索,广义搜索算法,迭代等等一些技巧(自己动手绝对比单纯的理论要强的多,多练练) HIVE是hadoop生 ...

  2. [转] KVM scalability and consolidation ratio: cache none vs cache writeback

    http://www.ilsistemista.net/index.php/virtualization/43-kvm-scalability-and-consolidation-ratio-cach ...

  3. java单元测试,ssh(spring,struts2,hibernate)框架整合junit4

    step1:导入必须的包,如果是maven项目,直接在pom.xml文件里加入以下依赖包: <dependency> <groupId>junit</groupId> ...

  4. apollo入门(一)

    1. apollo入门(一) 1.1. 核心概念 1.1.1. 应用 注意:每个应用需要配置一个appid 1.1.2. 环境 dev 开发环境 fat 功能测试环境 uat 用户接受测试环境 pro ...

  5. JavaScript 对象(上)

    简述: 1.是 JavaScript 的基本类型 2.是一种复合值,可通过名字访问这些值 3.可看作属性的无序集合,每个属性都是一个名/值对(属性名是字符串或标识符) 4.可以从一个称为原型的对象继承 ...

  6. openfire的SSL双向认证增加android客户端证书库步骤

    过程 需要新制作PKCS12证书库.CER证书.转换为androidBKS证书,最后把客户端的CER证书导入进im服务器的私钥库client.truststore,然后替换原证书.   新证书生成步骤 ...

  7. Fiddler修改请求、返回数据

    相信你们有听过说“绕过前端”,但是可能想不到要怎样才能绕过前端呢? 首先,我们要知道什么是绕过前端?比如:登录用户名限制数字.6位,用户在登录页面填写用户名符合要求,使用Fiddler作为代理,拦截登 ...

  8. Jenkins 忘记admin密码拯救方法

    突然有一日发现自己忘记了jenkins的管理员密码,因为我一直登录的是另外一个非管理员账户.如果出现必须要使用管理员账户操作的,比如用户管理那里的,必须要管理员账号吧,这就尴尬了. 很方的我打开安装j ...

  9. VueJs(7)---计算属性和侦听器

    计算属性和侦听器 一. 概述 计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div id="exampl ...

  10. Elastic Job学习

    从执行的结果来看,随着服务器的增加,分片的结果也不一样 当只有一台服务器的时候,所有分片都到这一台服务器上 当服务器增加到两台的时候,分片的结果是0 1 2 3 4和5 6 7 8 9 当服务器增加到 ...