• 建立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工程

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

  • 相关阅读:
    EasyUI的datagrid在IE下解决缓存的方案
    [置顶] 【Mybatis】---mybatis+mysql+ IntelliJ IDEA框架搭建+实例讲解
    【深入分析JavaWeb】-DNS域名解析
    hibernate对JPA_Annotation的支持实例讲解
    【hibernate进阶】hql简单属性查询
    LeetCode 10. 正则表达式匹配
    机器学习(Machine Learning)- 吴恩达(Andrew Ng) 学习笔记(七)
    机器学习(Machine Learning)- 吴恩达(Andrew Ng) 学习笔记(六)
    机器学习(Machine Learning)- 吴恩达(Andrew Ng) 学习笔记(五)
    机器学习(Machine Learning)- 吴恩达(Andrew Ng) 学习笔记(四)
  • 原文地址:https://www.cnblogs.com/lifexy/p/7018722.html
Copyright © 2020-2023  润新知