搜索
bottom↓
回复: 11

请DX,可以给我个9260的LED闪烁简单程序吗?当9260单片机用的,谢谢了【恢复】

[复制链接]

出0入0汤圆

发表于 2008-10-23 18:12:38 | 显示全部楼层 |阅读模式
请DX,可以给我个9260的LED闪烁简单程序吗?当9260单片机用的,,

我板子上是用的nor flash  没有SPI-FLASH~

谢谢了~

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2008-10-24 01:09:22 | 显示全部楼层
我记得你用MDK新建工程的时候会提示你是否加入启动文件,你选择加入,然后设置一下GPIO口,再到工程选项里设置一下你的RAM和FLASH的地址,然后写个小程序应该就能闪灯了

出0入0汤圆

 楼主| 发表于 2008-10-30 12:06:49 | 显示全部楼层
十分谢谢bozai 了~

这么复杂 ,够我好好研究下了~

不过只可运行在80多M,真是让人伤心欲决哈~

出0入0汤圆

发表于 2008-10-30 00:57:24 | 显示全部楼层
to ppa2001:

   我已经试好了,原来板子没办法跑在96MHz, 根据我的试验,只能稳定在80MHz。



这是代码:

点击此处下载 ourdev_474618.zip(文件大小:260K) (原文件名:Blinky.zip) 



程序首先会从debug的串口输出信息,然后做sdram的post,是个简单的post,会从debug的结果,接下来就是那个闪灯程序,灯接在PC0。





我这边的板子焊的是32MB的SDRAM, 两片16M的。这个小程序比较小,所以上面的程序也可以直接在你板子上运行。

不过最好还是改下, sdram的配置在start.s里有,我已经写上了64M版本的,你只要打开就可以了。

对了你还要看下你板子上sdram的参数, 我程序中32M的是 9colum 12row  4K/64ms   64M的是 9colum 13row 8K/64ms



程序中主频是81MHz (18.432/14*62) 你看看你的板子可以跑到多少。 

在我这边不能高于84MHz, 而我另一块6层板的9260板子没问题(试过96M)。



如果不使用sdram,使用内部ram,程序跑在96M没有问题,由此看出是SDRAM出问题。



再说下从原始的code改到norflash运行的思路。

首先那个blinkey例程只是在内部ram和外部sdram中运行的,系统速度96MHz(现在指导为啥ram能调试,sdram老死机的原因了)。

要在norflash中运行,需要改配置,具体就像6楼一样。(从flash启动,flash的逻辑地址是0,虽然烧写的时候hjtag要的是物理地址,这样就不能使用hex文件了,而需要bin文件。 keil生成bin文件方法是在user的run user program after build填上:C:\Keil\ARM\BIN31\fromelf.exe --bin -o #L.bin #L.axf)



另外,如果从norflash运行那么需要配置SMC,配置好CS0的参数:



SMC_SETUP       EQU     1 

SMC_CS0_SETUP   EQU     0x00000001



SMC_SETUP0_Val  EQU     0x04040404

SMC_PULSE0_Val  EQU     0x06060606

SMC_CYCLE0_Val  EQU     0x001f001f

SMC_MODE0_Val   EQU     0x10001000



这样flash在切换到高频率时钟时才可以正常读取, 同样这个配置值在用h-jtag烧写flash时也许要。





接着,范例start.s 的初始化顺序有问题, 它先初始化了clock,而没有先初始化SMC,这个就是在自杀,等clock初始化完了,flash也就读不了了,程序就挂了。 所以正确的顺序是先SMC后clock。

在这里碰到点问题,在start.s里调整顺序还是有问题,后来我用c在main函数里去初始化clock却可以工作。也许哪边还有些冲突。



sdram的配置,主要两个参数:

刷新定时值:

SDRAMC_TR_Val   EQU     0x00000520

这个值根据主频和sdram变。 比如sdram是 4K/64ms的,就是说64ms内刷新4096行,那个一行的时间是64ms/4096=15.6us

这个值就是那个寄存器的定时周期,然后用15.6/(1/Fmclk)就得到这个值了



另一个,配置sdram参数的:

SDRAMC_CR_Val   EQU     0x85227275

主要有三个参数 row bits, Column Bits, cas lantency,这个参数在sdram的datasheet里找。

具体可以看start.s里的注释。



好了,原理就是这样。

出0入0汤圆

发表于 2009-1-7 14:55:31 | 显示全部楼层
感谢 bozai ,请问DX 9260 从NorFlash 启动,运行时代码复制到 SDRAM 中运行,启动代码怎么写

出0入0汤圆

 楼主| 发表于 2008-10-28 14:11:48 | 显示全部楼层
这样对不?



 (原文件名:1.JPG) 

出0入0汤圆

 楼主| 发表于 2008-10-23 20:50:49 | 显示全部楼层
MDK的哪个程序,我改了下调试可以用,但我用H-JTAG下到NOR FLASH 中,不运行

应该是编译地址设置的问题,可我搞了半天都不行,麻烦DX帮忙哈~谢谢了哈

出0入31汤圆

发表于 2008-10-23 20:29:02 | 显示全部楼层
MDK的例程里就有吧

出0入0汤圆

 楼主| 发表于 2008-10-24 17:14:45 | 显示全部楼层
先谢谢DX的帮忙,

主要是我不知道怎么设置RAM和ROM地址,那位DX可以讲下吗?谢谢了~

我用了MDK的例子,在RAM运行是可以的,LED闪烁.

不过写入NOR FLASH 不运行~

我用的H-JTAG下载 芯片是SST3939VF1601

 ROM开始地址 0x10000000

 RAM 0x00200000



H-JTAG的设置应该没问题的,可以检测到芯片,烧写也顺利的



还的请教下,我在ROM设置地址为0X00

那RAM的地址设置要多少呢?我该为0x2000000  软件出错,不能修改?

出0入0汤圆

发表于 2008-10-24 08:04:13 | 显示全部楼层
可以先直接搞一个在RAM中运行的调试一下,编译到0x200000或0x300000位置

再重新编译到0x00,烧到NOR FLASH中运行

出0入0汤圆

发表于 2010-11-29 11:08:32 | 显示全部楼层
好主题,标记。

出0入0汤圆

发表于 2010-12-2 17:29:30 | 显示全部楼层
mark 9260
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-21 00:00

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表