OK6410裸机程序

来源:互联网 发布:在线查看网页源码 编辑:程序博客网 时间:2024/04/30 03:29

 

前段时间买了个OK6410B玩。看了看视频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处来执行.
一会我们来个程序:走走从 编辑----编译---链接---执行的过程。

                                                                                          我是个初学者,欢迎提出文章里的错误,我们可以一块探讨。

原创粉丝点击