port_fun.h
来自「《DSP系统入门与实践》」· C头文件 代码 · 共 63 行
H
63 行
void flash_ready()
{
//u16 u_temp;
u_temp=*(u16 *)(0xfffe);
*(u16 *)(add1)=0xaa;
u_temp=*(u16 *)(0xfffe);
*(u16 *)(add2)=0x55;
u_temp=*(u16 *)(0xfffe);
*(u16 *)(add1)=0xf0;
u_temp=*(u16 *)(0xfffe);
}
void flash_erase()
{
//整片擦除Flash
*(u16*)(add1)=0xaa;
u_temp=*(u16*)(0xfffe);
*(u16*)(add2)=0x55;
u_temp=*(u16*)(0xfffe);
*(u16*)(add1)=0x80;
u_temp=*(u16*)(0xfffe);
*(u16*)(add1)=0xaa;
u_temp=*(u16*)(0xfffe);
*(u16*)(add2)=0x55;
u_temp=*(u16*)(0xfffe);
*(u16*)(add1)=0x10;
u_temp=*(u16*)(0xfffe);
//判断结束信号,判断D7位是否为1;
do {
*(u16*)(0xfffe)=0x11;
u_temp=*(u16*)(add1);
} while((u_temp& 0x0080)==0x0000);
//已完全擦除
}
void flash_write(u16 address,u16 data)
{
u_temp=*(u16*)(0xfffe);
*(u16*)(add1)=0xaa;
u_temp=*(u16*)(0xfffe);
*(u16*)(add2)=0x55;
u_temp=*(u16*)(0xfffe);
*(u16*)(add1)=0xa0;
u_temp=*(u16*)(0xfffe);
*(u16*)(address)=data;//写数据
u_temp=*(u16*)(0xfffe);
do {
*(u16*)(0xfffe)=0x11;
temp1=*(u16*)(0x8020);
*(u16*)(0xfffe)=0x11;
temp2=*(u16*)(0x8020);
*(u16*)(0xfffe)=0x11;
}while((temp1 & 0x0040)!=(temp2 & 0x0040));
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?