当前位置: 技术问答>linux和unix
uClinux 2.0下如何对Flash编程
来源: 互联网 发布时间:2015-02-18
本文导语: 环境:Net-Start开发板,uClinux 2.0,AM29LV160DB Flash 要实现的功能:编制一程序在uClinux 2.0下执行,打印出Flash厂家代码和设备代码 背景资料: AM29LV160DB Flash通过CFI可执行擦除、写入、查询等操作,具体过程如下: 1....
环境:Net-Start开发板,uClinux 2.0,AM29LV160DB Flash
要实现的功能:编制一程序在uClinux 2.0下执行,打印出Flash厂家代码和设备代码
背景资料: AM29LV160DB Flash通过CFI可执行擦除、写入、查询等操作,具体过程如下:
1. 向+0x555写入 0xAA (Word模式)
2. 向+0x2AA写入 0x55 (Word模式)
3. 向+0x555写入 0x90
4. 读取第一个字节得到制造商代码,读取+2得到两个字节为
设备代码
5. 向+0x555写入 0xF0可复位Flash进入只读模式
程序:
#include
int main(void)
{
int i;
short *BaseAddress=(short *)0x1800000;
BaseAddress[0x555]=0xAA;
BaseAddress[0x2AA]=0x55;
for (i=0; i
要实现的功能:编制一程序在uClinux 2.0下执行,打印出Flash厂家代码和设备代码
背景资料: AM29LV160DB Flash通过CFI可执行擦除、写入、查询等操作,具体过程如下:
1. 向+0x555写入 0xAA (Word模式)
2. 向+0x2AA写入 0x55 (Word模式)
3. 向+0x555写入 0x90
4. 读取第一个字节得到制造商代码,读取+2得到两个字节为
设备代码
5. 向+0x555写入 0xF0可复位Flash进入只读模式
程序:
#include
int main(void)
{
int i;
short *BaseAddress=(short *)0x1800000;
BaseAddress[0x555]=0xAA;
BaseAddress[0x2AA]=0x55;
for (i=0; i