嵌入式开发者社区

标题: 通过CCS将程序下载到SPI0 Flash其原理是怎样的 [打印本页]

作者: shejishi0225    时间: 2014-11-5 16:37
标题: 通过CCS将程序下载到SPI0 Flash其原理是怎样的
本帖最后由 shejishi0225 于 2014-11-6 12:16 编辑

通过CCS将程序下载到SPI0 Flash其原理是怎样的?
我理解的操作步骤如下:
1. 将待烧写到flash的文件由*.out通过AISgen转换为*.bin或*.ais;
2. 通过CCS将flash writer.out文件load到DSP并运行;
3. flash write.out运行后会提示加载bin文件,操作即可。

疑问如下:
1. 上述过程中的工作原理?
2. 代码下载到SPI0 flash中,flash需要预留一部分空间么,就是代码不能从flash地址0开始写,那么预留多少呢?有什么原则
3. 代码下载到flash后,运行时,如何将代码加载到DDR SDRAM或on chip RAM或L2 RAM中运行,在哪里做这些配置?

盼哪位大侠回复下啊,谢谢啦!



作者: 希望缄默    时间: 2014-11-5 17:41



1、CCS 从磁盘读文件到 DSP 内存 DSP 再将数据写入 FLASH
2、看视频教程 第7节
3、同上

作者: shejishi0225    时间: 2014-11-6 12:18
本帖最后由 shejishi0225 于 2014-11-6 12:37 编辑
希望缄默 发表于 2014-11-5 17:41
1、CCS 从磁盘读文件到 DSP 内存 DSP 再将数据写入 FLASH
2、看视频教程 第7节
3、同上

flash writer起的作用:1. 初始化DSP,此初始化是为烧写程序做准备,与代码的初始化不一样,所做工作就是PLL0,PLL1及DDR,SPI0使能、初始化、pin管脚复用配置;
2. 就是将文件读取到DSP内存
3. 并将数据写入flash?
你们有flash writer的例程的例程么?因为每个厂家的硬件不一样,如果只有*.out可能是没用的。


作者: 希望缄默    时间: 2014-11-6 19:48
shejishi0225 发表于 2014-11-6 12:18
flash writer起的作用:1. 初始化DSP,此初始化是为烧写程序做准备,与代码的初始化不一样,所做工作就是P ...

创龙的核心板没有 SPI FLASH 所以也没有必要提供烧写程序了~

作者: 希望缄默    时间: 2014-11-6 19:48
shejishi0225 发表于 2014-11-6 12:18
flash writer起的作用:1. 初始化DSP,此初始化是为烧写程序做准备,与代码的初始化不一样,所做工作就是P ...

创龙的核心板没有 SPI FLASH 所以也没有必要提供烧写程序了~

作者: shejishi0225    时间: 2014-11-6 20:10
本帖最后由 shejishi0225 于 2014-11-6 20:12 编辑
希望缄默 发表于 2014-11-6 19:48
创龙的核心板没有 SPI FLASH 所以也没有必要提供烧写程序了~

我看硬件资料是有SPI1 FLASH的?[attach]88[/attach]

作者: 希望缄默    时间: 2014-11-7 09:13
shejishi0225 发表于 2014-11-6 20:10
我看硬件资料是有SPI1 FLASH的?

我说的是核心板

作者: shejishi0225    时间: 2014-11-7 09:58
本帖最后由 shejishi0225 于 2014-11-7 10:02 编辑
希望缄默 发表于 2014-11-7 09:13
我说的是核心板

底板上的SPI Flash不能做boot吗?
对于评估板,你对其用处有定义;我也有我的用处啊,如果能通过底板上的SPI学会通过SPI启动,这就是评估板对我最大的帮助{:soso_e102:};通过评估板的学习,才能更好的应用C6748,推及其它款DSP,对么?
呵呵,谢谢你回复那么多啦!{:soso_e113:}


作者: 希望缄默    时间: 2014-11-7 13:07
shejishi0225 发表于 2014-11-7 09:58
底板上的SPI Flash不能做boot吗?
对于评估板,你对其用处有定义;我也有我的用处啊,如果能通过底板上的S ...

当然可以启动~

C6748 的启动时很简单的 大部分工作是由 Rom BootLoader 完成的~
看完视频教程你应该就差不多理解了~

作者: shejishi0225    时间: 2014-11-7 13:39
希望缄默 发表于 2014-11-7 13:07
当然可以启动~

C6748 的启动时很简单的 大部分工作是由 Rom BootLoader 完成的~

ROM Boot loader,即通过gel文件完成dsp的PLL,DDR,SPI的初始化,而flash writer完成程序的烧写;
所以,所有的工作集中在flash writer这一块,我暂时还不知道怎么着手;视频看了,主要是讲EMIF nand flash, spi flash一笔带过;我会再仔细看看视频,消化下;
可你有例程么,或者在已有的例程中,哪个最相似,让我参考下。

啥事情,都是会者不难,难者不会;你是会者,我是难者,所以在此请教大侠么谢谢啦!

作者: 希望缄默    时间: 2014-11-7 13:48
shejishi0225 发表于 2014-11-7 13:39
ROM Boot loader,即通过gel文件完成dsp的PLL,DDR,SPI的初始化,而flash writer完成程序的烧写;
所以 ...

看你这么好学 给你个方向吧~

研究下 OMAP-L138_FlashAndBootUtils 这个工具
TI 的烧写工具集~

把这个搞清楚你应该就对启动和烧写相当清楚了~

作者: shejishi0225    时间: 2014-11-7 14:18
希望缄默 发表于 2014-11-7 13:48
看你这么好学 给你个方向吧~

研究下 OMAP-L138_FlashAndBootUtils 这个工具

俺是被工作逼的,不然自己才没那么大动力
我先学习学习;
我对于启动过程大致原理还是了解了,但具体做就不知道怎么下手了;其实还是没吃透吧
谢谢啦!{:soso_e163:}{:soso_e163:}{:soso_e163:}{:soso_e102:}


作者: shejishi0225    时间: 2014-11-7 14:38
希望缄默 发表于 2014-11-7 13:48
看你这么好学 给你个方向吧~

研究下 OMAP-L138_FlashAndBootUtils 这个工具

我们自己的PCB板上,不能用串口烧写程序,只能用CCS,通过flash writer.out将代码下载到SPI0 flash中,所以我才会在这个问题上这么纠结

作者: 希望缄默    时间: 2014-11-7 18:29
shejishi0225 发表于 2014-11-7 14:38
我们自己的PCB板上,不能用串口烧写程序,只能用CCS,通过flash writer.out将代码下载到SPI0 flash中,所 ...

这个工具支持 CCS 、串口

设备支持 NOR FLASH NAND FLASH SPI MEMORY

里面还附带一个 User BootLoader
以及上位机程序

作者: shejishi0225    时间: 2014-11-10 13:35
希望缄默 发表于 2014-11-7 18:29
这个工具支持 CCS 、串口

设备支持 NOR FLASH NAND FLASH SPI MEMORY

谢谢哈~
你说的我还是不太理解,我消化消化资料再向你请教

作者: shejishi0225    时间: 2014-12-18 15:58
本帖最后由 shejishi0225 于 2014-12-18 16:05 编辑
希望缄默 发表于 2014-11-7 18:29
这个工具支持 CCS 、串口

设备支持 NOR FLASH NAND FLASH SPI MEMORY

在使用TI 烧写工具集实现往SPI FLASH烧写程序时,步骤如下:
1. 硬件是创龙的评估板, SPI1 CS0;
2. 用TL提供的*.gel完成对PLL,DDR2,SPI1的初始化;同时再代码中将SPI1在初始化一次;
    我比较过创龙提供的spi flash例程执行后dsp寄存器的初始化,以及烧写程序集中对dsp初始化后的寄存器,这两个值除了spi初始化不一样,其它均一样;其中创龙的SPI使能了SPI enable引脚,我没有;3. TI的烧写程序集在读写操作时,没有使能cs的操作,我将创龙spi flash例程中的代码给copy进去了;
4. 我采用的是通过CCS将代码下载到flash中去;因为我的dsp硬件设计时没有将uart及sd等端口开放出来,我只能通过ccs烧写程序
5. 我尝试将GPIO_LED.ais烧写到spi flash中去,步骤如下:
    5.1 读取ais文件,并确认无误
    5.2 擦除spi flash,并确认擦除无误
    5.3 将ais写入flash,并确认无误

在进行到擦除flash时ok,但确认擦除无误时一直不行,读回来的数据一直都是0x00;

请问会是什么原因?
















欢迎光临 嵌入式开发者社区 (https://51dsp.net/) Powered by Discuz! X3.4