zh5202 发表于 2012-11-19 10:44

关于tekkaman移植的U-boot讨论

在tekkaman移植的u-boot中的第一阶段的nand_read.c部分实现u-boot拷贝的的代码中,在nand_read_ll函数中(就是汇编调用的那个C语言函数),有如下判断:
if (0) { /* dirty little hack to detect if nand id is misread */
unsigned short * nid = (unsigned short *)0x31fffff0;
*nid = nand_id;
}
以上代码在204行;
if ((start_addr & (nand.block_size-1)) || (size & ((nand.block_size-1))))
return -1; /* invalid alignment */
以上代码在228行。
这里不明白这两个判断的作用是什么?主要是第二个判断。
本人菜鸟,麻烦版主和大虾们帮帮忙。

zh5202 发表于 2012-11-22 08:45

怎么没有人来解答呢?

zh5202 发表于 2012-11-26 17:56

搞明白了,第二个判断是防止传入的首地址和大小不是nand flash的页大小的整数倍。
页: [1]
查看完整版本: 关于tekkaman移植的U-boot讨论