DSP初学者的疑惑,希望各位大侠指导

[复制链接]
3951|11
 楼主| wyfdlzg 发表于 2009-5-26 16:00 | 显示全部楼层 |阅读模式
&nbsp;&nbsp;&nbsp;最近在学习2812,看书的时候觉得很难懂。主要是2812的启动方式,cmd文件的作用,以及程序如何在flash中运行。前两个问题通过广泛的查资料,有了一定程度的理解。<br />&nbsp;&nbsp;&nbsp;现在的问题是程序如何在flash中运行。<br />&nbsp;&nbsp;&nbsp;要把程序下载到flash中去,先要初始化flash.而初始化FLASH却是在主程序中进行的。这样的话就存在逻辑上的问题。因为只有进了主程序才能够初始化FLASH,只有初始化成功后才能把程序下载到FLASH中去,而程序不下载到FLAsh中的话,主程序怎么启动。<br />&nbsp;&nbsp;&nbsp;本人菜鸟,希望各位大侠给予指导。非常谢谢。
gofortime 发表于 2009-6-1 10:46 | 显示全部楼层

同问

学习中
xiubing65 发表于 2009-6-24 19:22 | 显示全部楼层

哦<br />2812不是很了解,应该有bootload程序搬移一下吧
phillouc 发表于 2009-6-30 17:24 | 显示全部楼层

慢慢来

程序如何在flash中运行<br /><br />去ti网站下载个flash&nbsp;的API&nbsp;函数http://focus.ti.com.cn/cn/docs/toolsw/folders/print/sprc193.html<br />里面有2812的API例子,关于FLASH&nbsp;API的详细使用方法这里面有一份PDF进行解释。你可以用API擦写FLASH,在掉电的时候保存资料。<br /><br />主要操作是&nbsp;开始时对flash的段进行地址分配<br />内部有个ProMove()将flashAPI函数copy到SARAM,让API函数可以在SARAM中运行。接着copy&nbsp;需要在RAM中运行的函数列表地址到RAM中。<br /><br />主要是这个了。希望有些帮助<br /><br />
fanyinfu 发表于 2009-7-2 18:38 | 显示全部楼层

sdfsdfs

sdfsdfsdf
ldyeah 发表于 2009-7-20 22:28 | 显示全部楼层

re

&nbsp;要把程序下载到flash中去,先要初始化flash.而初始化FLASH却是在主程序中进行的。这样的话就存在逻辑上的问题。因为只有进了主程序才能够初始化FLASH,只有初始化成功后才能把程序下载到FLASH中去,而程序不下载到FLAsh中的话,主程序怎么启动。<br />、、、、、、、、、、、、、、、、、、、、、、、、、、、、<br />这句话没看懂,我没用过2812,用的2407<br />主程序中有对FLASH初始化么?<br />主程序的初始化程序只是你自己对外设,变量这些的初始化吧,这样的话也就是对寄存器操作了吧。<br />你下载程序时通过JTAG接口就把程序固化在FLASH上了,上电复位后,dsp从片内FLASH的0地址或片外的0地址去读取你的程序开始运行,由跳转指令转到其他地址上的指令,及到你的main函数处。
fzb1 发表于 2009-7-30 11:20 | 显示全部楼层

如果想上手倒是容易

找几个例程看看就会了.如果要做深了就得多看资料.
andy.free-tech 发表于 2009-8-20 14:40 | 显示全部楼层
是这样的,对有些处理器(不限于DSP)是先Copy一小段(一般是4k)Flash程序到RAM中然后运行之,如果你程序比这个小就不用考虑往RAM搬程序的问题了,但往往你程序都比4k大,所以要把4k之后的程序搬到RAM中以备运行。
有些好的集成开发环境(像CodeWarrior)可以根据芯片型号自动生成cmd文件,不用手动编写cmd和搬移程序的代码了。Freescale的DSP就可以用这种集成开发环境来开发,Freescale的56F8006/8007非常适合简单的电机控制类应用,56F83xx非常适合带能量回收的和矢量控制型电机控制。
angelguard 发表于 2009-8-20 14:50 | 显示全部楼层
9# andy.free-tech
不是COPY一小段到RAM里,是将FLASH初始化程序(initFlash())放入RAM里执行
angelguard 发表于 2009-8-20 14:53 | 显示全部楼层
在2812的CMD中有一段是叫“ramfuncs”的段(具体名字记不清了),这是在内部RAM里的段,这一段就是放FLASH的初始化程序的,好像在sysctrl.c里有这段代码,看看就清楚了。
FLASH的初始化程序必须放在RAM里执行。
andy.free-tech 发表于 2009-8-20 17:01 | 显示全部楼层
这说法是有问题的,原因是刚开始上电RAM里是没有程序的。
有一种启动模式:上电先运行一段ROM程序,这个程序的作用就是COPY一小段FLASH的内容到RAM里,之后运行之。
star柠檬 发表于 2009-8-22 09:15 | 显示全部楼层
来学习的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

9

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部