Chinaunix首页 | 论坛 | 博客
  • 博客访问: 755883
  • 博文数量: 119
  • 博客积分: 137
  • 博客等级: 少校
  • 技术积分: 1582
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-28 16:39
文章分类

全部博文(119)

文章存档

2017年(3)

2016年(7)

2014年(1)

2013年(8)

2012年(20)

2011年(27)

2010年(53)

分类: 嵌入式

2011-02-16 16:51:58

1. 嵌入式系统的编译大致流程为 CFE->config->rootfs->kernel,也是编译后生成的image的结构,烧录到flash中之后,上电最先启动的是CFE,首先CFE必须认识falsh的类型。

 kernel (Linux内核)    
 rootfs (Flash文件系统)           
 config (可选信息)     
 bootloader (CPU启动后加载)
2. 为bcmCHIP_ID的CFE添加一颗心的flash的过程中,主要设计两个文件
   1) cfe文件夹下的shared\opensource\flash\spiflash.c
   2) 与target目录同在的shared目录下的opensource\flash\spiflash.c
3. 修改这两个文件的原因
     修改2.1是因为,首先编译CFE,
   在要生成cfe的bin:cfeCHIP_ID.bin,
   cd cfe/build/broadcom/bcm63xx_rom
   make BRCM_CHIP=CHIP_ID clean
   make BRCM_CHIP=CHIP_ID
   再将生成的bin文件copy到target\cfe中,这样修改的cfe633x.bin才能生效
     修改2.2的原因,在编译的时候会变异根目录下的hared\opensource\flash\spiflash.c,这会将flash的    种类用到后面的应用上
4. 最后在编译整个项目

小结:
#make Project clean
make PROFILE=96XXX clean

#make cfe
cd cfe/build/broadcom/bcm63xx_rom/
make BRCM_CHIP=CHIP_ID clean
make BRCM_CHIP=CHIP_ID

#copy cfe.bin to target/cfe
cp cfeCHIP_ID.bin ../../../targets/cfe
cd ../../../../

#make project
make PROFILE=profile_id

附:spiflash.c修改方法
1. add manufacturer ID
#define MXICPART 0xC2

2. add MXICFlash‘s device ID
#define ID_MX25L1606E
这两个都是Datasheet中定义的

3. 在SPI_FLASH_DEVICES中添加对应关系
{SPI_MAKE_ID(MXICPART,IDMX25L1606E,"MX25L1606E")}
   
4. 在spi_flash_init中添加对应的响应
case MXICPART:
    flashFamily = FLASH_AMD;
    sectorsize = SECTOR_SIZE_64K;
    switch((unsigned char)(device_id & 0x00ff))
    {
        case ID_MX25L1606E:
            numsector = 32; /*flash size*/
            break;
    }
    break;

5. 最后在short_spi_get_device_id中找到对应组修改
   if( **** || buf[0] == MXICPART)

OK 结束
   
   
阅读(2976) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-03-06 08:51:42

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com