打印

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

[复制链接]
3106|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wyfdlzg|  楼主 | 2009-5-26 16:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   最近在学习2812,看书的时候觉得很难懂。主要是2812的启动方式,cmd文件的作用,以及程序如何在flash中运行。前两个问题通过广泛的查资料,有了一定程度的理解。
   现在的问题是程序如何在flash中运行。
   要把程序下载到flash中去,先要初始化flash.而初始化FLASH却是在主程序中进行的。这样的话就存在逻辑上的问题。因为只有进了主程序才能够初始化FLASH,只有初始化成功后才能把程序下载到FLASH中去,而程序不下载到FLAsh中的话,主程序怎么启动。
   本人菜鸟,希望各位大侠给予指导。非常谢谢。

相关帖子

沙发
gofortime| | 2009-6-1 10:46 | 只看该作者

同问

学习中

使用特权

评论回复
板凳
xiubing65| | 2009-6-24 19:22 | 只看该作者


2812不是很了解,应该有bootload程序搬移一下吧

使用特权

评论回复
地板
phillouc| | 2009-6-30 17:24 | 只看该作者

慢慢来

程序如何在flash中运行

去ti网站下载个flash 的API 函数http://focus.ti.com.cn/cn/docs/toolsw/folders/print/sprc193.html
里面有2812的API例子,关于FLASH API的详细使用方法这里面有一份PDF进行解释。你可以用API擦写FLASH,在掉电的时候保存资料。

主要操作是 开始时对flash的段进行地址分配
内部有个ProMove()将flashAPI函数copy到SARAM,让API函数可以在SARAM中运行。接着copy 需要在RAM中运行的函数列表地址到RAM中。

主要是这个了。希望有些帮助

使用特权

评论回复
5
fanyinfu| | 2009-7-2 18:38 | 只看该作者

sdfsdfs

sdfsdfsdf

使用特权

评论回复
6
ldyeah| | 2009-7-20 22:28 | 只看该作者

re

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

使用特权

评论回复
7
fzb1| | 2009-7-30 11:20 | 只看该作者

如果想上手倒是容易

找几个例程看看就会了.如果要做深了就得多看资料.

使用特权

评论回复
8
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非常适合带能量回收的和矢量控制型电机控制。

使用特权

评论回复
9
angelguard| | 2009-8-20 14:50 | 只看该作者
9# andy.free-tech
不是COPY一小段到RAM里,是将FLASH初始化程序(initFlash())放入RAM里执行

使用特权

评论回复
10
angelguard| | 2009-8-20 14:53 | 只看该作者
在2812的CMD中有一段是叫“ramfuncs”的段(具体名字记不清了),这是在内部RAM里的段,这一段就是放FLASH的初始化程序的,好像在sysctrl.c里有这段代码,看看就清楚了。
FLASH的初始化程序必须放在RAM里执行。

使用特权

评论回复
11
andy.free-tech| | 2009-8-20 17:01 | 只看该作者
这说法是有问题的,原因是刚开始上电RAM里是没有程序的。
有一种启动模式:上电先运行一段ROM程序,这个程序的作用就是COPY一小段FLASH的内容到RAM里,之后运行之。

使用特权

评论回复
12
star柠檬| | 2009-8-22 09:15 | 只看该作者
来学习的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

9

帖子

0

粉丝