在CCS5上新建一个6678的工程,在新建的配置文件中要加人6678的配置文件gel文件,我想问的是:
1、gel文件在整个程序的运行过程中,gel文件中的程序是在何时运行的?
2、gel文件中的一些函数(例如GEL_MapAddStr、GEL_MapOn、GEL_MapReset)以及一些数据类型(例如hotmenu)没有具体的实现过程,在哪可以找到这些函数的实现?
3、哪位专家能否将6678开发板从上电加载到运行gel文件程序再到运行自己的程序的过程讲述下?这有利于理解6678开发板的整个程序运行情况分析!
King Wang1:
问题1:
Gel文件的执行时间一般在DSP connect target之后,在download代码之前。因为gel文件通常会进行一些初始化的寄存器的设置,比如memory map,PLL和DDR初始化等。所以在download之前必须初始化这些。
问题2:
gel文件的脚本都可以找到的。CCS5的版本可以在这个目录下找到大部分EVM的gel脚本
C:\Program Files\Texas Instruments\ccsv5\ccs_base\emulation\boards
问题3:
gel脚本类似于C语言函数,就是运行一些函数。比如DDR初始化函数。如果DDR没有初始化,是无法将代码download到DDR中去的。执行gel脚本有两种,一种是用户自己执行,另一种是CCS5自动将gel脚本关联到相关的操作中,比如connect target就自动关联了初始化PLL,初始化DDR的gel函数。
建议可以找个gel脚本看看,这样更有助于理解。
谢谢!
conghu zhu:
回复 King Wang1:
King Wang,你好
DSP在加电后,采样引脚配置,加载运行bootloader,可不可以认为,bootloader就是上电后的一些初始化以及配置工作呢?
core0进行配置,而其他核IDLE状态,最后进入到BOOT MAGIC ADDRESS处,这个BOOT MAGIC ADDRESS处事一个加载到内存中的程序的入口地址,理解对否?
不过在CCS connect到板子之前,每个核上面运行的是什么程序呢?
CCS connect到target是不是相当于对core发起一个重启指令,然后利用GEL文件程序进行重新初始化的设置,然后download程序到core上是不是产生一个中断,然后core开始运行download的程序?
King Wang1:
回复 conghu zhu:
conghu 你好:
DSP上电后,PC指针会跑到ROM的位置,各个core都会自动运行ROM的代码。
ROM代码中会有IDLE指令,当DSP跑到IDLE指令时就自动停止了。所以在CCS connect之前,核上面运行的就是ROM中的代码,也是bootloader的代码。
当你要download文件到CCS时,通常认为是处于no boot模式。这时CCS会把out文件导入DSP内存,同时将PC指针跳转至_c_int00的位置,然后就可以按照用户定义的代码运行了。
而你说的BOOT MAGIC ADDRESS通常也设置的是_c_int00的地址,这个一般是存在boot的情况,会在代码拷入完毕后将BOOT MAGIC ADDRESS写入,然后bootloader会跳转到该地址执行。
谢谢!
conghu zhu:
回复 King Wang1:
King wang,你好
“当你要download文件到CCS时,通常认为是处于no boot模式。” 这句话的意思是CCS download文件时就被配置成了no boot模式了吗?no boot 模式是GEL文件程序配置的吗?如果是的话那不是和板子上的sw3~sw6的配置冲突了吗?
King Wang1:
回复 conghu zhu:
你好:
如果不是no boot模式,那就没有必要使用CCS来download代码。
因为其他boot模式,比如eamc boot,srio boot等都可以通过自己的方法download代码,不需要CCS来执行download的操作。
no boot在EVM板上是通过switch来控制的。不是gel脚本控制的。
conghu zhu:
回复 King Wang1:
你好:
我每次在ccs上都要连接到目标板后,需要download .out文件到core上,然后才执行我自己的程序,按照你的意思,.out程序是在no boot模式上加载的,而我的目标板的switch并不是配置为no boot模式的,这怎么理解?
conghu zhu:
回复 King Wang1:
谢谢你的解答,很到位!
buxin chang:
回复 King Wang1:
你好:
我用的是AM3359的板子,往板子中下载一个程序,但是程序有点大,所以让程序在DDR上执行,所以需要将用gel文件配置,但是我现在在想自己用语言实现gel的功能,gel中的程序大部分都可以使用,但是GEL_MapAddStr等,这些函数式如何实现的,所以我想问一下,有谁知道这些函数的定义是在哪里?