?? test.c
字號:
#include "includes.h"
#include <c6x.h>
void main (void)
{
unsigned int i,j,k,data;
unsigned int test_buffer,add_buffer2;
unsigned int buffer_addr1;
// unsigned int buffer_temp=0x80500000;
*(unsigned volatile int *)PLLCSR &=0xfffe; /*(1) PLLEN(bit0)=0*/
for(i=0;i<4;i++);/*(2)wait */
// asm("nop");
*(unsigned volatile int *)PLLCSR |=0x08;/*(3)PLLRST=1*/
*(unsigned volatile int *)PLLDIV0 =0x8001; /*(4) devide 2 =25*/
for(i=0;i<8;i++);
*(unsigned volatile int *)PLLM =0x0009; /*PLL * 9 =225*/
for(i=0;i<8;i++);
*(unsigned volatile int *)PLLDIV1 =0x8000; /*(5)devide 2 =112.5*/
for(i=0;i<8;i++);
*(unsigned volatile int *)PLLDIV2 =0x8000; /* devide 1 */
for(i=0;i<8;i++);
*(unsigned volatile int *)PLLDIV3 =0x8001; /* devide 1 */
for(i=0;i<100;i++); /**6*/
*(unsigned volatile int *)PLLCSR &=0xfff7;/*(7)PLLRST=0*/
for(i=0;i<100;i++); /**8*/
*(unsigned volatile int *)PLLCSR |=0x01; /*(1) PLLEN(bit0)=1*/
*(unsigned volatile int *)DEVCFG =0;/*emif clock out = sysclk3*/
/* DSP initialization */
CSR=0x100; /* Disable all interrupts */
IER=1; /* Disable all interrupts except NMI */
ICR=0xffff; /* Clear all pending interrupts */
*(unsigned volatile int *)EMIF_GCR = 0x3338; /* EMIF global control */
*(unsigned volatile int *)EMIF_CE1 = 0xffffff13;//0x23b10513; /* EMIF CE1 control, 32bit */
*(unsigned volatile int *)EMIF_CE2 =0xFFFFFF23; //0x11E1C722; /* EMIF CE2 control, 32bit */
*(unsigned volatile int *)EMIF_CE3 = 0xFFFFFF23; /* EMIF CE3 control, 32bit */
*(unsigned volatile int *)EMIF_SDCTRL = 0x07126000; /* EMIF SDRAM control */
*(unsigned volatile int *)EMIF_CE0 = 0x30; /* EMIF CE0 control */
*(unsigned volatile int *)EMIF_SDRP = 0x61a; /* EMIF SDRM refresh period */
*(unsigned volatile int *)EMIF_SDEXT= 0x54529; /* EMIF SDRM extension */
*(unsigned int *)(0xa00004fc)=0x12b7c;
test_buffer=0xa00004fc;
(*(unsigned int *)(test_buffer))=0x12b7c;
test_buffer=0x1940000;//TIMER0_CTRL
buffer_addr1=0x1980000;//TIMER1_CTRL
///*****************/*erase*/
*(unsigned short int *)(0x90000000+0x5555*2)=0xAAAA;
*(unsigned short int *)(0x90000000+0x2AAA*2)=0x5555;
*(unsigned short int *)(0x90000000+0x5555*2)=0x8080;
*(unsigned short int *)(0x90000000+0x5555*2)=0xAAAA;
*(unsigned short int *)(0x90000000+0x2AAA*2)=0x5555;
*(unsigned short int *)(0x90000000+0x8000)=0x5050;//30-sector;50-block-0x8000;10-chip
for(i=0;i<100;i++);
j=*(unsigned short int *)(0x90008004);
while(!(j&0x80))
j=*(unsigned short int *)(0x90008004);
for(i=0;i<100;i++);
//***************burn sram to flash *******
k=0x000; //user code start address boot 0-0x400 , user :0x400-0x1400
data=0;
while(k<0x400) //BOOT
{
*(unsigned short int *)(0x90000000+0x5555*2)=0xAAAA;
*(unsigned short int *)(0x90000000+0x2AAA*2)=0x5555;
*(unsigned short int *)(0x90000000+0x5555*2)=0xA0A0;
/*0x90000000+k 如果k+=1的話造成地址重復(fù)寫 */
*(unsigned short int *)(0x90000000+k)= *(unsigned short int *)(0x0000+k);
for(i=0;i<300;i++);//延時(shí)
k+=2;/* 還是要加2 */
}
//***************burn sdram to flash *******
//user code start address boot 0-0x400 , user :0x400-0x1400
k=0x000;
while(k<0x1B00) //user code
{
*(unsigned short int *)(0x90000000+0x5555*2)=0xAAAA;
*(unsigned short int *)(0x90000000+0x2AAA*2)=0x5555;
*(unsigned short int *)(0x90000000+0x5555*2)=0xA0A0;
/*0x90000000+k 如果k+=1的話造成地址重復(fù)寫 */
*(unsigned short int *)(0x90000400+k)= *(unsigned short int *)(0x80000000+k);
for(i=0;i<300;i++);//延時(shí)
k+=2;/* 還是要加2 */
}
while(1)//led blink
{
(*(unsigned int *)test_buffer)|=0x04; //off
for(i=0;i<0x3FFFFF;i++);
(*(unsigned int *)test_buffer)&=0x0B; //on
for(i=0;i<0x3FFFFF;i++);
(*(unsigned int *)buffer_addr1)|=0x04;
for(i=0;i<0x3FFFFF;i++);
(*(unsigned int *)buffer_addr1)&=0x0B;
for(i=0;i<0x3FFFFF;i++);
}
}
/*
*(unsigned short int *)(0x90000000+0x5555*2)=0xAAAA; //erase
*(unsigned short int *)(0x90000000+0x2AAA*2)=0x5555;
*(unsigned short int *)(0x90000000+0x5555*2)=0x8080;
*(unsigned short int *)(0x90000000+0x5555*2)=0xAAAA;
*(unsigned short int *)(0x90000000+0x2AAA*2)=0x5555;
*(unsigned short int *)(0x90000000+0x5555*2)=0x1010;
for(i=0;i<100;i++);
j=*(unsigned short int *)(0x90008004);
while(!(j&0x80))
j=*(unsigned short int *)(0x90008004);
for(i=0;i<100;i++);
i=0;
k=0;
while(k<0x100)
{
*(unsigned short int *)(0x90000000+0x5555*2)=0xAAAA;
*(unsigned short int *)(0x90000000+0x2AAA*2)=0x5555;
*(unsigned short int *)(0x90000000+0x5555*2)=0xA0A0;
*(unsigned short int *)(0x9000c400+k)=(k+1)*256+k;
for(i=0;i<100;i++);
j=*(unsigned short int *)(0x90000000);
while(!(j&0x80))
j=*(unsigned short int *)(0x90000000);
i++;
k+=2;
if(i>255) i=0;
}
*/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -