韦东山Linux嵌入式课程社区
直播中

刘艳

7年用户 2239经验值
私信 关注

为什么S3C2440用JATG可以自动烧到NAND而不用初始化?

      以前使用单片机的时候,无论是AVR时使用的JTAG,还是STM32时使用的JLINK,由于片上都有FLASH,都没关注过程序下载的过程。
      这次入手JZ2440的开发板,发现了S3C2440与单片机有很大的不同,它是外接的NAND和NOR,通过管脚电平控制启动时由谁开始,但是外部接入的器件一般都得通过配置CPU内的控制器,才能对外接设备进行访问的。
      疑惑:S3C2440使用EasyOpenJtag,用Oflash烧录程序,是如何做到让CPU将程序烧录到NAND(NOR)中的呢?难不成是由于Oflash的程序中,通过JTAG和CPU进行“沟通”时,对NAND和NOR的控制器进行了控制初始化的操作了?

回帖(4)

陈畅妮

2019-7-30 10:25:09
是的,oflash强大的很
举报

李辰圻

2019-7-30 10:44:06
虽然我不知道OpenJtag是怎么做的,但是我开发过51和STM32的调试器,JTAG是可以让CPU执行汇编指令的,JLINK也可以直接烧写2440的nor flash,但是不支持nand flash
举报

李辛华

2019-7-30 10:57:24
你不给指令,CPU什么都不会干,这肯定是OpenJtag的驱动实现了和CPU的协同工作,从而初始化外部的Nandflash,例如读写操作。从而将程序烧写到了Nandflash。就像我们在开发uboot时,我们在将程序从Nandflash拷贝到SDRAM时(从Norflash启动),是需要对Nandflash进行初始化的,一个意思。你不对它进行初始化,他就是块砖头。
举报

陈欢兆

2019-7-30 11:12:36
oflash是通过JTAG协议来控制主芯片的引脚,把这些引脚当作GPIO来使用。
通过控制GPIO的电平,来初始化NAND FLASH,
一切都是通过GPIO来做的,没有让主芯片执行指令,
所以这种方式烧写有点慢 ,但是稳定。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分