cgc_good 发表于 2011-3-16 17:04:54

S3C2440到底怎么通过JLINK把裸机程序下载到SDRAM中运行呢?

第一次用ARM,才觉得以前单片机没学好,因为都是用的片上FLASH和RAM,keil里面都是自定义链接好的,根本不用管。现在好了,都是片外的,一片麻木。
硬件:从NAND FLASH启动,没有焊接NOR FLASH,SDRAM地址0x30000000。
软件:ADS1.2+AXD
仿真器:jlink V8

在网上找了个历程,控制GPBO的led灯和蜂鸣器响,直接将bin下载到芯片内部SRAM上可以运行(entry point、RO设置成0x00000000,RW可不变,在外部SDRAM),但是我想把它下载到外部SDRAM中运行,如下图设置,下载后程序即刻跑飞:

http://cache.amobbs.com/bbs_upload782111/files_37/ourdev_623018AAKPA1.jpg
(原文件名:QQ截图未命名.jpg)

当然我知道要先初始化SDRAM,在AXD里面也用命令行初始化了,可是还是不行。想到JLINK的loadbin命令后跟一个地址,若这个地址是在SDAM中,其又没有初始化,那么代码有用吗。还有芯片reset后就从0x00000000处运行,把程序入口点设置在0x30000000不是肯定会跑飞吗……

内中一定有玄机,我决定先从汇编入手,先利用可以运行的4K了解硬件结构,时钟设置,MMU,中断等等

shanlei300 发表于 2011-3-17 16:40:29

回复【楼主位】cgc_good
-----------------------------------------------------------------------

兄弟,你研究明白了吗?我现在也在研究这个问题,到现在也没有搞明白怎么用。可否留下你的联系方式。共同学习一下?
我的邮箱:shanlei300@163.com

cgc_good 发表于 2011-3-18 17:44:31

axd汇编调试的时候,b resethandler时第一句话就跑飞了。难道是要用分散加载,把2440init.S放入0x0处,再搬移拷贝main到SDRAM,再或者时内存映射问题?qq66737654

cgc_good 发表于 2011-3-18 17:53:19

回复【楼主位】cgc_good
-----------------------------------------------------------------------

也许这个帖子会有启发
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4595802&bbs_id=9999

cgc_good 发表于 2011-3-21 22:57:07

又发现一个问题,NAND里面有操作系统

cgc_good 发表于 2011-3-31 10:17:33

基本上明白ADS链接原理了。虽然现在程序还没有在SDRAM中跑起来,但是找到原因了:板子的SDRAM有问题。板子上的NAND中有bootloader,通过串口打印加载结果,出现很多error,咨询才知,SDRAM有问题,和我的想象一样。
   bin文件中存在编译器写进去的几个符号,就是RO,RW,ZI的加载地址,供启动文件使用,如果你写的裸机汇编,直接就跟单片机一样,在4K中去跑吧。如果用jlink下载到SDRAM,就先初始化SDRAM的相关寄存器。原理大概就是这样。暂时还不理解中断重映射,MMU这些,因为没有硬件可以跑起来去验证,先修修SDRAM再说吧

ky51 发表于 2012-4-28 17:15:51

gracialee 发表于 2012-4-28 21:30:52

你如何确定SDRAM有问题的啊?别太武断地下结论?
页: [1]
查看完整版本: S3C2440到底怎么通过JLINK把裸机程序下载到SDRAM中运行呢?