基于S3C4510B的系统的Flash擦除与烧写问题(二)

J_暖心

J_暖心

2016-01-29 18:33

基于S3C4510B的系统的Flash擦除与烧写问题(二),基于S3C4510B的系统的Flash擦除与烧写问题(二)
基于S3C4510B的系统的Flash擦除与烧写问题(二) (抄的)
在《基于S3C4510B的系统的Flash擦除与烧写问题(一)》中讨论了Flash的擦除问题,这里再和大家交流一下Flash烧写的问题。    对Flash的烧写,和前一个帖子所讨论的问题一样,首现应将SDRAM映射出来,然后编写一段烧写程序,下载到SDRAM中,同时将待烧写的内容,也下载到SDRAM中的某个区域,然后执行烧写程序,就可将待烧写的内容写入Flash中。    仍然以上一贴的硬件平台为例,在ADS中打开命令窗口,执行如下命令:     >obey c:mymap.txt   此时,2MB的Flash存储器和16MB的SDRAM已分别映射到地址空间的0x0000,0000~(0x0020,0000-1)和0x0040,0000~(0x0140,0000-1)处。   编写一个Flash的烧写程序,由Init.s文件和Main.c文件构成。   Init.s文件的代码如下:    IMPORT Main   AREA    Init,CODE,READONLY   ENTRY   BL Main   B .   END   Main.c文件的代码如下:#define ULCON0 (*(volatile unsigned *)0x03FFD000) //UART channel0 line control register#define UCON0 (*(volatile unsigned *)0x03FFD004) //UART channel0 control register#define USTAT0 (*(volatile unsigned *)0x03FFD008) //UART channel0 status register#define UTXBUF0 (*(volatile unsigned *)0x03FFD00c) //UART channel0 transimit holding register#define URXBUF0 (*(volatile unsigned *)0x03FFD010) //UART channel0 recieve buffer register#define UBRDIV0 (*(volatile unsigned *)0x03FFD014) //Baud rate divisor register0#define AM_WORD_COUNT (64*1024)/2     //此处决定待烧写文件的大小,在此为64KB#define UINT16 unsigned short#define AM_START_ADDR          0x0000000     #define AM_ADDR_UNLOCK1        0x555#define AM_ADDR_UNLOCK2        0x2aa#define AM_DATA_UNLOCK1        0xaaaa#define AM_DATA_UNLOCK2        0x5555#define AM_SETUP_WRITE         0xa0a0#define AM_SETUP_ERASE         0x8080#define AM_CHIP_ERASE          0x1010#define AM_SECTOR_ERASE     0x3030#define AM_RESET     0xf0f0void Delay(unsigned int);void InitUART(int Port,int Baudrate);void PrintUART0(char *s);int Main(){ volatile UINT16 *from_add,*to_add;int i;InitUART(0,0x500);PrintUART0("ARM Starting...n");to_add= (UINT16 *)0x0;from_add=(UINT16 *)0x500000;for(i=0;i
展开更多 50%)
分享

猜你喜欢

基于S3C4510B的系统的Flash擦除与烧写问题(二)

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
基于S3C4510B的系统的Flash擦除与烧写问题(二)

基于S3C4510B的系统的Flash擦除与烧写问题(一)

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
基于S3C4510B的系统的Flash擦除与烧写问题(一)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

基于S3c4510b芯片的系统中的地址重映射的实现

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
基于S3c4510b芯片的系统中的地址重映射的实现

基于SQL Server的C/S数据库应用系统

SQLServer
基于SQL Server的C/S数据库应用系统

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

C/S、B/S软件技术上的比较

PHP
C/S、B/S软件技术上的比较

基于C语言中段错误的问题详解

编程语言 网络编程
基于C语言中段错误的问题详解

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Linux网管123---第4章.安装及硬体组态-6.硬体组态

Linux网管123---第4章.安装及硬体组态-6.硬体组态

干吗还用 7.2 ?

干吗还用 7.2 ?
下拉加载更多内容 ↓