主题 : 相同的硬件总线设备接口 流驱动 64M/256M的核心板工作不一样 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 9672
精华: 0
发帖: 41
金钱: 215 两
威望: 46 点
综合积分: 82 分
注册时间: 2009-10-09
最后登录: 2016-09-08
楼主  发表于: 2011-04-28 12:02

 相同的硬件总线设备接口 流驱动 64M/256M的核心板工作不一样

    相同的硬件总线设备接口、流驱动时,在Micro2440-20090228(flash:64M)的核心板,带硬件设备都正常工作,但在micro2440-20100204(flash:256M)的,工作时死机,总线接口无硬件设备也一样,具体操作是:
一、在flash:64M的核心板,20090228版本BSP工程文件时,正常读与写;
1、在\micro2440200902光盘文件\WindowsCE5.0\smdk2440目录下\NBOOT\2440addr.h中增加物理地址定义,
#define bus_base   (*(volatile unsigned *)(0x08000000))  
  #define bus0    (*(volatile unsigned *)(bus_base+0x00))  
  #define bus1    (*(volatile unsigned *)(bus_base+0x04))  
  #define bus2    (*(volatile unsigned *)(bus_base+0x08))  
  #define bus3    (*(volatile unsigned *)(bus_base+0x0C))
  ...  
2、在smdk2440\INC\s2440a.h中增加
   #define NGCS1_BASE       0xA2000000 //82000000
     typedef struct {
      unsigned int bus0;     //00
      unsigned int bus1;     //04
      unsigned int bus2;     //08
      unsigned int bus3;     //0C
           ...
      }busreg;
3、再写一个类似LEDDriver.cpp的驱动,进行读与写操作,并编译、下载,
4、用C#写应用程序;

二、操作在flash:256M的核心板,20100817版本BSP工程文件时,读写总线接口有时死机(不带硬件设备都会死),
1、在2010-06-19的NBOOT\244X_addr.h中增加物理地址定义并编译,之后再将Nboot.bin下载到板上,
  #define bus_base   (*(volatile unsigned *)(0x08000000))  
    #define bus0    (*(volatile unsigned *)(bus_base+0x00))  
    #define bus1    (*(volatile unsigned *)(bus_base+0x04))  
    #define bus2    (*(volatile unsigned *)(bus_base+0x08))  
   #define bus3    (*(volatile unsigned *)(bus_base+0x0C))
    .. .
2、在mini2440\\Src\Drivers\LEDdriver\s2440.h中增加
   #define NGCS1_BASE       0xA2000000 //82000000
     typedef struct {
      unsigned int bus0;     //00
      unsigned int bus1;     //04
      unsigned int bus2;     //08
      unsigned int bus3;     //0C
          .. .
        }busreg;
3、在LEDDriver.cpp驱动中增加读与写操作的程序,并编译、下载,
4、用C#写应用程序;
三、总结:操作相同的总线设备硬件,
1、用64M的核心板正常,
2、用256M的核心板好象总线有冲突,而引起不稳定,读/写数据时(外部KEY/LED)没有变化,似乎定义#define bus0 (*(volatile unsigned *)(bus_base+0x00))  并没有定义到,还是... ?
烦请各位朋友们帮助,先谢谢了!
站得高,望得远。
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
1楼  发表于: 2011-04-28 15:59
不知道你使用的是那个版本的核心板,上面有没有什么特殊标志。
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
级别: 新手上路
UID: 9672
精华: 0
发帖: 41
金钱: 215 两
威望: 46 点
综合积分: 82 分
注册时间: 2009-10-09
最后登录: 2016-09-08
2楼  发表于: 2011-04-28 19:39
没见到特殊标志,就是内存IC型号不一样,
两个板子的配置分别是(20090228版本,20100204版本)

   nand:  K9F1208U0C,K9F2G08U0B;        

   nor:SST39VF1601,S29AL016M10TF102;

   sdram:HY57V56162,H57V2562;    

  底板USB:USB Host * 1,USB Host * 4;
站得高,望得远。