📄 2-4.c
字号:
#include <stdio.h>
#include <c6x.h>
#include "6711.h"
int Len = 0x0a000; // 预编写的程序长度
int main()
{
char *flash_ptr =(char *) 0x090000000;
char src_ptr[128] = {0};
FILE *hex_fp = NULL;
int flag = 0,j,data,l,i,length,temp,temp1;
char hex_filename[80]="post.hex";
CSR=0x100;
IER=1;
ICR=0x0ffff;
*(unsigned volatile int *)EMIF_CE1 = 0x0ffffff03;
if ( (hex_fp=fopen( hex_filename , "r" ))== NULL )
{
printf( "\nERROR: File %s does not exist!\n", "post.HEX" );
exit(0);
}
if ( (fgetc(hex_fp)) == 0x02)
{ // do nothing
}
else
{
exit(0);
}
printf("Programming the flash.\n");
*(char *) flash_addr1 = 0x0aa;
*(char *) flash_addr2 = 0x55;
*(char *) flash_addr1 = 0x80;
*(char *) flash_addr1 = 0x0aa;
*(char *) flash_addr2 = 0x55;
*(char *) flash_addr1 = 0x10;
temp = *flash_ptr;
temp &= 0x40;
temp1 = *flash_ptr;
temp1 &= 0x40;
while(temp != temp1)
{
temp = *flash_ptr;
temp &= 0x40;
temp1 = *flash_ptr;
temp1 &= 0x40;
}
length = Len/128;
for(l=0;l<length;l++)
{
for (i =0;i<128;i++)
{
j = fscanf(hex_fp,"%x", &data);
src_ptr[i] = data;
if (j == EOF || j == 0)
{
flag = 1;
}
}
*(char *) flash_addr1 = 0x0aa;
*(char *) flash_addr2 = 0x55;
*(char *) flash_addr1 = 0x0a0;
for (i=0;i<128;i++)
*flash_ptr++ = src_ptr[i];
temp = *--flash_ptr;
temp &= 0x80;
while(!temp)
{
temp = *flash_ptr;
temp &= 0x80;
}
flash_ptr++;
}
printf("\nProgramming the flash is completed.");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -