历史上的今天
今天是:2025年04月01日(星期二)
2020年04月01日 | S5PV210的NandFlash应用(三)
2020-04-01 来源:eefocus
准备分析
经过了《S5PV210的NandFlash应用(二)》对于二进制文件前16k的存取方式都了一定的了解。这次要证明的是第NandFlash第4页以后存取方式。《S5PV210的NandFlash应用(二)》里边的210.bin(大小为16k)是以存到4k为单位存到了前4页(0, 1, 2 ,3)的每页的前4k处。为此我自己写了一个8k的二进制文件(名字叫AB),贴在210.bin的后边,按照推断这8k应该存在了第4页。然后改到nand_cp.c以8k的方式,读取第4页,然后数据都输出到串口,再与原二进制文件对比。

资源工具
同《 S5PV210的LED应用(一)》
NandFlash: K9GAG08U0F (2G)
特殊的进制文件AB:



着手写程序
(1) int nandll_read_blocks (ulong dst_addr, ulong size, int large_block),读一块大小。这里改为以8k方式读一页。
(2) cat 210.bin AB > 210210.bin 可以合并两个文件
具体的实现:
/*
* Read data from NAND.
*/
static int nandll_read_blocks (ulong dst_addr, ulong size, int large_block)
{
uchar *buf = (uchar *)dst_addr;
int i;
uint page_shift = 9;
if (1 == large_block)
{
page_shift = 11;
/* Read pages */
for (i = (0x6000>>page_shift); i < (size>>page_shift); i++, buf+=(1< nandll_read_page(buf, i, large_block); } } else if(3 == large_block) { page_shift = 13; //以8k方式读一页 for (i = 4; i < 5; i++, buf+=(1<<(page_shift))) { nandll_read_page(buf, i, large_block); } } return 0; } 下载运行 同《 S5PV210的LED应用(一)》 下载文件为:210210.bin 运行调试 与“特殊的进制文件AB”对比如图所示: 3个重要的点都没有出现问题,都能对应的上,证实了假设。 得到结论,16k以后的文件都是在NandFlash第4页开始存储的。 遗留问题 1.无 


下一篇:S5PV210的Uart应用
史海拾趣
|
我是一名研二的学生,最近老板(老师)叫我弄关于IXA的东西,倒腾了几个月下来算是有了一定的了解,但是突然觉得这个东西的应用面不广呀,也不怎么具有通用性,都是Intel的那套东西,要是换了平台这些就完全用不上了…… 想问问各位前辈们,现在市 ...… 查看全部问答> |
|
CPU是STM32F103CB,无操作系统。 通过UART1接受GPRS发来的数据,在中断函数中 USART1_IRQHandler 中进行处理 unsigned char a_GPRSData[500]; unsigned int g_DataLength; void USART1_IRQHandler(void) ...… 查看全部问答> |
|
第0篇Xilinx FPGA开发环境的配置第一篇Xilinx ISE 使用入门1第二篇Xilinx ISE 使用入门3第三篇Xilinx ISE 使用入门4第四篇XILINX ROM 使用教程 … 查看全部问答> |
|
现在在玩raspberry pi,感觉beaglebone太鸡肋,没有扩展版没法玩。 当然也有可能是我水平太糙,弄不起来。想想看还是raspberry pi更适合新手。 今年4月份买的,需要的我给taobao链接。… 查看全部问答> |
|
使用IAR调试430板子的时候,总是连不上板子,出现下面的错误。 Thu May 22, 2014 09:09:59: Fatal error: Failed to re-initialize Session aborted! Thu May 22, 2014 09:10:00: Fatal error: Unknown exception in driver (SD3)&n ...… 查看全部问答> |




