soulmate 发表于 2007-12-29 15:02:46

AT91SAM7S64可以自己写自己的FLASH麽?

有人做过麽~./emotion/em009.gif

soulmate 发表于 2007-12-29 15:31:08

http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_195135.gif

soulmate 发表于 2007-12-29 15:35:15

谁能讲讲分散加载在sram中读写flash的方法~

soulmate 发表于 2007-12-29 16:49:54

http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_195172.gif

soulmate 发表于 2008-1-2 09:02:11

DDD~它支持IAP麽~./emotion/em008.gif

soulmate 发表于 2008-1-2 15:54:15

遇到困难了~有人读写过at91sam7s64自己的flash麽~

soulmate 发表于 2008-1-2 19:06:24

./emotion/em009.gif

zbhrose 发表于 2008-1-3 08:59:06

肯定可以,要不就没有内建于ROM的BOOTLOADER了,我也在搞,想自已写处BOOTLOADER,

qiang6091 发表于 2008-1-3 10:15:14

可以,我用LPC2138是可以写的。

soulmate 发表于 2008-1-25 14:12:39

我已经做成功了~
贴上来~给有需要的人~
NND~几句破代码,被搞得神神秘秘的~鄙视一下~
__ramfunc void Read_Page(int Page_Number,int *Buffer,int len)
{
unsigned int*Flash_Address;
int i;

Flash_Address = ( unsigned int* )( 0x100000+Page_Number*256 );

//每次读是一个字,四个字节
for( i = 0; i < len; i++ )
{
    Buffer[ i ] = *( Flash_Address + i );
}

}

__ramfunc int Write_Page( int Page_Number,int *Buffer,int len)
{
unsigned int*Flash_Address;
int i;

AT91C_BASE_MC->MC_FMR = ( ( 72 ) << 16 ) | AT91C_MC_FWS_1FWS;//编程前页擦除
AT91C_BASE_MC->MC_FCR = ( 0x5A << 24 ) | ( ( Page_Number << 8 ) & AT91C_MC_PAGEN) | AT91C_MC_FCMD_UNLOCK ;//解锁

while ( ( AT91C_BASE_MC->MC_FSR & AT91C_MC_FRDY) != 1 );   

Flash_Address = ( unsigned int* )( 0x100000+Page_Number*256 );
   
//每次写是一个字,四个字节
for( i = 0; i < len; i++ )
{
    *( Flash_Address + i ) = Buffer[ i ];
}

if( ( AT91C_BASE_MC->MC_FSR & AT91C_MC_FRDY) != 1 )
{
    return -1;
}   



AT91C_BASE_MC->MC_FCR = ( 0x5A << 24 ) | ( ( Page_Number << 8 ) & AT91C_MC_PAGEN) | AT91C_MC_FCMD_PROG_AND_LOCK ;    //编程及锁定

while( 1 )
{   
    if( AT91C_BASE_MC->MC_FSR & 0x01 )
    {
      if( AT91C_BASE_MC->MC_FSR & AT91C_MC_LOCKE )
      {
      return -1;
      }
      if( AT91C_BASE_MC->MC_FSR & AT91C_MC_PROGE )
      {   
      return -1;
      }
      
      break;

    }
}

return 1;
} //Write_Page

zxq6 发表于 2008-1-25 15:39:53

谢谢分享

whwshiyuan 发表于 2013-4-12 18:25:02

楼主请教下,我用您的程序 好像不能实现在线编程哦我是想实现这样的功能:用户程序运行时,保存一下数据到FLASH,下次上电时可以读到这些数据。      是不是对FLASH编程的IAP程序不能运行在FLASH中,必须copy到RAM中运行呢????

whwshiyuan 发表于 2013-4-12 18:25:21

{:smile:}{:smile:}{:smile:}

tarchen 发表于 2014-4-3 10:07:43

牛人总是有的!
支持楼主!
页: [1]
查看完整版本: AT91SAM7S64可以自己写自己的FLASH麽?