您的位置:首页 > 其它

在没有仿真器的情况下调试ok6410裸机程序

2012-08-09 11:12 267 查看
前段时间 买了个OK6410 B玩。看了看视频JlinkV8调试 挺麻烦的,就直接用uboot 上的printf进行很简单的调试,特意分享给像我一样的小白,

也感谢帮我的大牛。

1、开发 环境 :

PC:archlinux,minicom 或者 kermit.(工具不会用的google啊,呵呵)

开发板: ok6410B(256 SDRAM,2G Nand flash )

两者之间通信 用tftp传输。(有人用windows下的DNW 进行传输,由于我没windows,另外DNW貌似有时候有乱码,挺不爽的,你们选自己的

菜吧。个人喜欢linux-minicom or kermit - tftp.)

2、tftp传输设置 :

PC上安装tftp-hpa,如果是别的发行版,安装相应的tftp server.具体设置如果不会就google吧。

开发版上,飞凌 提供的uboot 默认是不能进行tftp传输的,得改相应config和驱动 ,在这里我直接把需要改动的文件 发到这里。剩下所要做的

就是拷贝到相应的文件夹 ,自己编译 一下uboot,再重新烧写一下uboot。(具体步骤看视频,哈哈)。

然后用咱们的交叉 网线连接PC和OK6410,ping一下看看通不?不通就看下哪里设置错了,直到通了为之,(网上有人说一些情况下ping不通

也能进行tftp传输,我不晓得,因为没条件实验 ,你们可以试一下)

好了,经过以上步骤你的咱们的OK6410就可以和PC进行文件传输了。

3、内存地址 空间:

由于我们是用tftp传输把可执行文件放到SDRAM中执行的,所以下一个我们要考虑的问题就是s3c6410 SDRAM内存地址空间,就是我们具体

可以放在哪里?

这部分知识可以看这里:http://blog.csdn.net/eagle_lzt/archive/2011/04/08/6310094.aspx

看了看s3c6410的datasheet,分析如下:

(一) memory

1.引导镜像区 0x0000_0000~0x07FF_FFFF

2.内部存储区

(1) 内部ROM 0x0800_0000~0x0BFF_FFFF

(2) 内部SRAM 0x0C00_0000~0x0FFF_FFFF

3.静态存储区 0x1000_0000~0x3FFF_FFFF

4.动态存储区 0x4000_0000~0x6FFF_FFFF

(二) pheriperal(外设地址空间)

    0x7000_0000~0x7xxx_xxxx

根据datasheet可知,memory的前三个区,不是用来映射SDRAM的,所以就不多说了,感兴趣的自己可以看datasheet研究,哈哈.

我们看一下动态存储区:0x4000_0000~0x6FFF_FFFF

根据datasheet可以知道0x4000_0000~0x4FFF_FFF是保留区,所以就不管它了.

所以0x5000_0000~0x6FFF_FFFF是用来挂SDRAM的,我的SDRAM是256的,估计就是地址空间就是0x5000_0000~0x5FFF_FFFF了.事实证明是可以的,哈哈.

也就是说我们可以把程序 放到5000_0000处来执行.

一会我们来个程序:走走从 编辑----编译---链接---执行的过程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: