注意:下载SUPERVIVI后,如果SUPERVIVI运行成功,现象是: LED1:闪烁
LED2:熄灭
LED3:常亮
LED4:熄灭
1:JLINK连接后,为什么要使用它内部的SRAM? JLink 的调试功能、烧写Flash 的功能都很强大,但是对于S3C2410、S3C2440 的Flash 操作有些麻烦:烧写Nor Flash 时需要设置SDRAM,否则速率很慢;烧写Nand Flash 只是从理论上能够达到,但是还没有人直接实现这点。本文使用一个间接的方法来实现对S3C2410、S3C2440 开发板的Nor、Nand Flash 的烧写。原理为:JLink 可以很方便地读写内存、启动程序,那么可以把一个特制的程序下载到开发板上的SDRAM 去,并运行它,然后使用这个程序来烧写。
当从NAND启动时
[size=14.44444465637207px]cpu会自动从NAND flash中读取前4KB的数据放置在片内SRAM里(s3c2440是soc),同时把这段片内SRAM映射到nGCS0片选的空间(即0x00000000)。cpu是从0x00000000开始执行,也就是NAND flash里的前4KB内容。因为NAND FLASH连地址线都没有,不能直接把NAND映射到0x00000000,只好使用片内SRAM做一个载体。通过这个载体把nandflash中大代码复制到RAM(一般是SDRAM)中去执行
[size=14.44444465637207px]当从nor flash启动时
[size=14.44444465637207px]nor flash被映射到0x00000000地址(就是nGCS0,这里就不需要片内SRAM来辅助了,所以片内SRAM的起始地址还是0x40000000). 然后cpu从0x00000000开始执行(也就是在Norfalsh中执行)。
2:JLINK连接后,擦写芯片不稳定的解决办法
在使用JLINK时,用J FLASH擦除与编程S3C2440都很不稳定,这时需要使用下面的步骤;
1: 接好JLINK和开发板并且开发板在nor启动位置;
2: 打开j-flash软件
3: 导入配置文件“mini2440-S29AL016.jflash”,在file-open project打开;
4:用file—open打开supervivi-128M.bin文件(一定要把开发板光盘即橙色光盘的images目录下的文件 拷贝到硬盘中加上后缀名.bin),起始地址:0.
5:联机jlink和开发板,点target—connect;
6:如果联机成功,就可以直接进行其他擦除,烧写操作了,推荐直接用targe—autu(热键F7)
3:串口终端没有数据显示的解决
在电路设计时,两个串口通信,两块电路板A、B 设计时需要注意:TX_A <-->RX_B; RX_A <-->TX_B;
即在数据通路上要实现交叉;
基于标准与统一,公母口我们在使用前就要遵循接线标准,如下;按照这个标准,两个公口或者两个母口对接就要使用直连串口线,而不能使用交叉串口线;
DB9母头/孔型: 引脚序号:2 3 5
信号定义:TXD RXD 地
DB9公头/针型: 引脚序号:2 3 5
信号定义:RXD TXD 地
但是很多工程师在设计时没有注意到公母口的区别,设计线路时,如下;这样两个公口或者两个母口对接就要使用交叉串口线,而不能使用直连串口线;
DB9母头/孔型: 引脚序号:2 3 5
信号定义:TXD RXD 地
DB9公头/针型: 引脚序号: 2 3 5
信号定义:TXD RXD 地
---------------------或者----------------------------------
DB9母头/孔型: 引脚序号:2 3 5
信号定义:RXD TXD 地
DB9公头/针型: 引脚序号: 2 3 5
信号定义:RXD TXD 地
所以,总结,这个需要考察下实际的电路,做出正确的选择,原则就是物理连接要使数据通路交叉。
上一篇:程序的TRACE功能
下一篇:学习嵌入式Linux的笔记和体会
推荐阅读最新更新时间:2024-10-31 15:53