• 建立uboot,内核的SI工程(1)


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

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

    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.22.6_jz2440.patch    //对linux-2.6.22.6文件进行打补丁
    cp config_ok .config                        // 补丁打好后,就会有一个config_ok,通过cp,来更换内核配置信息
    cd ..
    tar -cjf linux-2.6.22.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工程

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

  • 相关阅读:
    octotree神器 For Github and GitLab 火狐插件
    实用篇如何使用github(本地、远程)满足基本需求
    PPA(Personal Package Archives)简介、兴起、使用
    Sourse Insight使用过程中的常使用功能简介
    Sourse Insight使用教程及常见的问题解决办法
    github 遇到Permanently added the RSA host key for IP address '192.30.252.128' to the list of known hosts问题解决
    二叉查找树的C语言实现(一)
    初识内核链表
    container_of 和 offsetof 宏详解
    用双向链表实现一个栈
  • 原文地址:https://www.cnblogs.com/lifexy/p/7018722.html
Copyright © 2020-2023  润新知