EDA365电子论坛网

标题: TMS320C665x基于仿真器的程序加载与烧写 [打印本页]

作者: Tronlong小分队    时间: 2020-9-23 14:29
标题: TMS320C665x基于仿真器的程序加载与烧写
基于仿真器的程序加载与烧写 查看仿真器是否安装成功开发板断电,用仿真器连接开发板和电脑终端。右键计算机图标,点击“管理->设备管理器->通用串行总线控制器”或者“管理->设备管理器->端口”,查看是否有对应的仿真器的选项出现,如有说明仿真器驱动已经正常安装。/ R2 X8 @  `/ n5 ?) K. m( n+ ?' L
3 P7 e, N% b3 s; Z7 J% r4 B) p
% t' I3 F1 G$ e
图 13 X$ F# _' Z( O6 o
1 Y! R2 c( B7 _. k4 I8 b
8 U/ v+ M( S- P7 s6 y

% A/ J+ m, S* c: s2 B6 J图 2
  x0 D$ b( A. q$ ^- C( J( X1 }
* C  T% z  m# KCCS集成开发环境自带XDS100及XDS200系列仿真器驱动。如果仿真器无法正常使用,请检查是否存在驱动冲突,XDS100系列仿真器使用FTDI芯片,请检查是否与已经安装使用FTDI的USB转串口驱动冲突,如使用XDS200仿真器,请检查计算机中是否正确安装USB转串口驱动或者尝试重新安装计算机主板芯片组驱动。% \, }- K' r2 m( X, |3 A
5 k: n# q# @2 [4 W# @$ y" j; X
设置工程配置文件信息0 G  @! k6 f! J9 }% |! H
注:如果使用XDS220仿真器,其通过USB的配置方式与XDS200配置相同,但XDS220仿真器有网络仿真功能,详细配置方式,请参考1.2.2章节:网络仿真配置。, [- a$ f* w7 V: e& B  K# x
请先按照软件安装《Windows版本CCS5.5安装》文档安装CCS,然后打开CCS集成开发环境,点击菜单"File->New->Target Configuration File",如下图所示:3 E, j# M# t) @4 P

; u$ G+ v. j1 A; f3 k) t  N  G0 g/ w- }7 `% C/ r5 @
图 39 W, W" g: D4 h$ x

) P  I$ v7 q6 `; ]% u2 U在弹出的界面中输入工程配置文件名字,然后点击Finish。如下图所示:
" a4 H6 S% Y) z( K# ~) d9 f' M* k# D6 Y2 u% s" p
* q3 @' \* E5 H# w) c" H
图 4
9 m+ G7 i2 j- I/ \, ~1 D- w) ^) Q- G/ |8 {( M) @! j: v5 c
在弹出的对话框的Connection下拉框中选择对应的仿真器类型(如使用TL-XDS200仿真器请选择"Texas Instruments XDS2xx USB Emulator_0"),在"Board or Device"下拉框中选择对应的CPU型号,TMS320C6657、TMS320C6655或TM320C6654,然后点击右边的Save,保存设置。如下图所示:. Z# b1 E- T* }+ H) v% P( |7 q
; s% T* C! T: j8 l. Q& d
$ R% p& Z1 Z% u* S& }1 ?/ _
图 5: K/ `/ w1 Z/ u1 [+ a4 v/ a

- P  o4 d% V  C& R仿真器连接开发板,拨码开关拨到NO BOOT模式,这个档位是DEBUG调试模式。开发板上电后,点击"Test Connection",测试仿真器是否连接成功。如下图所示:
9 A# o9 R! P3 K9 b) ~& u+ F2 ^% J0 P" F/ y( B
1 s% |$ U3 D1 g$ x+ a) f! S4 T
图 6- z" ^, c9 n/ E& z

; a) G+ A8 c2 |, ?XDS220这一款仿真器具有网络仿真的功能,网络仿真配置的操作如下:
: K  {: M# S6 M+ x( o. F; f% d. ~将网线一端连接路由器,另一端接入XDS220仿真器的网络接口。此外,USB接口线需要连接电脑及仿真器,确保仿真器驱动安装正常。
0 X$ k, ?4 ~, K* ?! m7 {- M8 ?5 ~5 Z进入CCS安装目录,进入"ti\ccsv5\ccs_base\emulation\specdig"路径,具体以个人CCS安装路径为准,可以看到xds2xx文件夹,如图:- x2 t6 r! I* y( Q6 y3 N  v
+ g" ?; S* z6 J# l; \+ v8 |6 p

1 N% m& z4 ?0 l# R4 _/ X* ^图 7
+ v9 ]6 M& x1 c# |! q1 V+ B
$ Y3 B3 \! f) K1 z& Z选中xds2xx文件夹,按住Shift键,单击右键,在弹出的窗口选中“在此处打开命令窗口”。
! A9 s1 e3 y) Y( P& [
8 G3 R9 F" z" q$ P: g  d
5 z; g, m4 q- K3 M7 g5 W+ [图 8
4 r+ R. o2 Z3 i$ C! p" [- L! K- Z5 |! ?7 p7 l( i* G- R+ P
此时会弹出命令窗口,在命令窗口输入如下指令,然后按Enter键。. A  b2 y; D3 i/ A" x- {
DOS# xds2xx_conf set xds2xxu 0 ipConfig=dhcp
7 g; Y0 H! d( ~( i1 t
3 u! x" U+ l6 M! ?- k, _- b0 h" y4 d3 ^- B4 K) Z: P0 L; Y3 h
图 90 z, e8 V/ r$ X: J' l4 c$ B" e, b9 v- Z
9 j: X( X3 ^4 }
通过命令行查看仿真器获得的IP,输入如下指令,按Enter键,可看到cmd窗口打印出仿真器获取到的动态IP:192.168.1.61。4 r5 r8 r6 L" O
$ }/ \: x. J9 Y; V: a, y; B4 }

( n4 c5 O2 }% m8 l* Z) `/ W图 10
' Q! d3 r6 y& C* S/ }% g' K" l7 t& S  N
打开CCS,点击菜单"File->New->Target Configuration File",如下图所示:) W9 s" J" L. i* V$ A6 v! S2 k
& D9 m$ {7 n2 P8 r! h4 ?
- k" |! g; Q: k. I9 l! [
图 11
, u/ J4 g, a, d! K- d7 W" G% f( U& m! J
在弹出的界面中输入工程配置文件名字,然后点击Finish。如下图所示:- q. c; L2 E( n* F, T2 C. D- B4 \
5 U" V5 |" [" u/ c- u" z3 J

( ?) ~) c! K/ p; w2 h" v图 12
8 B0 a/ @9 ?0 w( H( o. O5 W
% ^, ~, O$ i* E( y$ m在弹出的对话框的"Connection"下拉框中选择对应的仿真器类型,在"Board or Device"下拉框中选择对应的CPU型号,TMS320C6657、TMS320C6655或TM320C6654。如下图所示:
: a& A3 y+ k0 k  w  M* [: h6 t) f+ Q$ }  b5 G4 U
. E, ?. y8 x4 r1 I7 c5 ^
图 13/ W, _* a+ Q% a

3 z- p, H1 M' z6 F: k选中C66xx_0,在右边的窗口,点击Browser按键,加载gel文件,如下两图。
% N' {5 r# A9 O' g& t; @* ^4 N+ w
# A3 `- G& u. M6 F
图 14! Z. m4 U- A8 p1 F  Q9 ]( w
% o% u; p6 W7 f9 i" w
加载gel文件,gel文件在光盘的Image目录下,使用时需要复制到非中文路径下,如图。  [4 E  N8 Y, K

' z& Z) h+ K. q' W+ N: V2 y- G& e5 Q6 ~' _0 O. Y% Y. o% ]
图 15' v& @, i# Y) s9 ?. V

. Q/ |  B( \; B8 K3 `0 k选中仿真器配置,在IP栏输入仿真器分配到的IP地址:192.168.1.61(具体IP以自己服务器分配为准)
# o0 W/ S6 {9 h4 s* r/ N
9 p  V& J/ o( i) W6 H8 `# ?! f
1 M) i9 l, v0 P) U  c2 B图 164 j  [. T; ]& h1 E5 D

8 ^* j( G% ^% {点击Test Connection,看到弹出窗口,测试成功,说明配置成功。
. q7 x$ o& }- r: f! e: H; ?/ ^9 T+ Q
8 R; `- d2 |+ f' Q0 j1 C: R
图 17
& p. V. V1 T% Y& F7 ~+ G* D; W( l+ ]/ a! p( U  [* j- |
打开上述新建好的配置文件,点击"Advanced->New…",如图所示:
* l% l( k# }3 i5 I: k' L9 n% i8 t0 X. ?2 w: U+ ^

5 w) x6 E5 X  T6 R' @图 18, w( [1 X" P7 j& I" a2 C% w2 `
$ I/ Y" P! ^6 ^! A
选择对应的仿真器连接,如图所示:
, p  m3 w2 G7 C& o! p) b2 }
9 d2 H4 j' t6 B( Q- u3 G/ c1 q3 W1 P, X" I8 R5 A. w
图 19
' R" K* D- c; }" R7 W9 `* [  N( X/ e" X, n  n6 V
点击新建的仿真器连接,然后点击"Add…",如图所示:
8 `6 N" P5 E* P, z$ R! c  s* d6 A$ h2 Q0 \, |0 D$ O- t
2 J* O( N3 s/ z/ q9 r7 Q& T/ C
图 20
* M9 T1 ]; {9 n; w1 C
9 b- M1 k$ A# p% N1 J" E点击Devices窗口,选择相应的芯片,点击Finish,如图所示:' K% x6 I& K3 _: u8 a1 D( }6 n
0 r* d3 J9 ?- Z" h2 D8 ~

9 C. {/ W' J+ e* @  L9 B图 21! i, R* t7 k! T
; X6 L8 i- _* [. G3 \7 |
点击新建的仿真器连接,修改相应的端口值,并保存,如图所示:
8 K1 m1 E, K6 c+ ]% s6 t5 P( H4 z6 ^4 c7 u% m

1 k6 B" G* g; j图 22
0 J+ v. R0 E* [; G* S  T/ E
- {4 l' d" J2 e% S6 R  y可按上述操作继续添加多个仿真器配置。) Y* W# x1 y' Y5 Q5 @1 f; u

9 `7 B8 C; d- [$ I& D加载GEL文件* Y! s$ J" u! g. r* N7 V& T
GEL文件主要用于在仿真调试的过程中对CPU进行初始化,如PLL、DDR等,还可以执行一些调试操作。例程中使用"Tronlong_C665x.gel"文件进行初始化,配置如下CPU为1.0GHz,DDR3等效频率及对CPU风扇进行控制。7 Q" w) a; Y7 ^
点击CCS菜单"Run->Debug",弹出以下类似界面,可以看到C66xx_0核,如果使用的是TMS320C6657,还将看到C66xx_1核。C66xx_0和C66xx_1核都是可以单独加载GEL文件和程序镜像的。& D& M+ `) ^! [$ t3 Z4 O  }

  B5 @8 {4 p5 q( z
- o/ I* F5 [) C  {4 |( f图 23
8 U) Y* Y& g- ?
" d; s8 r( ?  v2 p右击对应的DSP核,在弹出的界面中选择"Open GEL Files View"选项,右下角会弹出"GEL Files(TMS320C66xx)"对话框。
" p- u5 ]% _6 s+ C0 _' G3 m+ r7 {% o# ^5 c2 Q: I  Q, x1 M

; o0 U9 Q# T/ K1 F0 n图 24
9 H9 L9 D5 I: D$ U2 ~
+ U# u# ~/ n  W* F) M在对话框内点击右键,在弹出的界面中选择"Load GEL"。选择光盘资料Images目录下的GEL文件"Tronlong_C665x.gel",再点击“打开”,接着右下角的"GEL Files(TMS320C66xx)"对话框会出现Success提示语句,如下图:
% O! f* R$ w; A- }( |6 s0 M7 U0 e( r+ A9 a
& [7 O( a+ V$ z3 U0 T# _
图 25" j. B5 ~9 T8 v: r2 O& m

3 q/ w% k3 W7 ~1 Q3 c& o  F/ R: ~' r1 s& D, |' k5 y& ?
CCS连接开发板CPU
+ f  X; k/ L" A3 \右击对应的DSP核,选择"Connect Target"选项,会显示Suspended状态。这说明CCS已经和开发板CPU正常连接起来了,如下图所示:
2 _% `8 I( c$ F* U" K% `3 k6 V* ^, {* ^& b0 _* {9 c' \  U" z3 k7 H

3 o4 |3 y/ O2 \图 26
" j+ q% m! s' b0 R0 U# G
' ]& R. C) j' i$ q备注:如果此处提示"No source****"的信息,不是错误信息,可以将其忽视。
8 y7 W- l( u7 B5 D1 k5 p0 k0 _连接后将自动初始化开发板,如下图所示:# B& T9 n1 Y5 ~5 s" W$ ~3 K- c; P- b

3 j$ U6 ~. C  W$ ]- a  p7 h
" f: n$ I5 u  n6 L3 v图 27; V. {, @9 ?% t0 ?0 K( `/ N) C
4 Z+ F& M. x& _+ a& b( s
可在Scripts菜单下对风扇进行开关控制,如图所示。
4 m6 `& H; _5 I. v1 C8 i+ }* g/ k# O4 @9 h2 q8 g$ z

) a' f3 v8 |8 I. ?# ]# M1 W4 g图 28
6 k6 X3 O3 A+ N9 A& `( M; H, ^
3 }' c) }) \" ^, ?, w
) P: c- Q, e5 V( X. C' d加载程序镜像文件点击"Run->Load->Load Program",选择程序镜像文件(光盘资料Images目录下有用于演示的"MyC665x.out"文件,现象为底板LED灯被点亮),并点击OK。接着点击绿色三角启动按键,程序即可正常运转起来。
( h2 f& B% e, a6 S5 E; i# d' ?; V- U% b3 Y$ p3 Y; G

3 ?) K7 t( q& r! M' s! c2 o' M  R图 29
: t3 Y8 o* t! N; Z( Z9 r1 N5 @9 |: l" w$ n! C

9 b/ K0 M: L3 s2 I/ B) O0 n# ~/ j4 ~$ r  G
图 304 p8 R' m' U0 {; S: J! @! ^, D
  N; D& D3 P) n! i4 }. r2 P; P
烧写程序到FLASH由于开发板的EEPROM烧写了IBL(Intermediate BootLoader),也就是二级引导程序,支持直接启动ELF格式的二进制.out文件,因此可将生成的.out文件烧写到NAND FLASH或NOR FLASH并脱机运行。依赖IBL的支持,可直接烧写CCS中编译出的.out文件,而不需要经过任何转换。需要注意的是,.out文件中包含有很多调试信息,所以文件较大,具体烧写步骤如下。
9 r6 I; D/ c5 u  A如需烧写NAND FLASH,将光盘"Demo\Flash Writer"目录下的NandFlashWriter.out、nand_writer_input.txt文件和需要烧写的.out程序拷贝到同一个非中文路径下,并修改需要烧写的.out程序文件名为app.bin。
0 H8 W% V# G' x+ r) Y, E. O如需烧写NOR FLASH,将光盘"Demo\Flash Writer"目录下的NorFlashWriter.out、nor_writer_input.txt文件和需要烧写的.out程序拷贝到同一个非中文路径下,并修改需要烧写的.out程序文件名为app.bin。1 T! z# g2 X6 X4 |
打开CCS集成开发环境,加载GEL文件并连接CPU,然后加载烧写工具程序文件NandFlashWriter.out或NorFlashWriter.out,点击OK,如下图所示:
- J3 K; N1 q- y) d1 u/ O  L9 V1 A1 z5 o* K) s7 H9 u
$ v% z7 W+ e  M8 g: L
图 31  k3 m* m/ s& K  T

% n; m9 v1 K% `9 X( ?点击CCS菜单栏"View->Memory Browser",在弹出的界面中点击"Save Memory"按钮,然后在下拉框中选择"Load Memory",如下图所示:
! K0 t( d+ `! J  x9 x
- j. C3 k2 g: ?! I) ~6 \5 X* }
6 `" g6 f, f; Q4 P5 J  h" _图 32
! J0 X6 V8 G$ q5 u1 U* I6 S: h9 V, j  y/ [2 \
选择程序文件,文件类型选择"Raw Data Format(.bin)",如下图所示:
) P5 D1 [# Q' a& a! s+ ~. ?, _" w1 I& @1 g

, Z, D8 O4 b+ [" ?图 335 A* I0 i9 C4 w  [9 `
+ G" J! z2 o+ t  n" k" U/ P8 X
点击Next,在弹出的界面中输入起始地址:0x80000000,数据类型选择:32bits,然后点击Finish,等待加载完成,如下图所示:
2 D/ N6 Z( O' G& ^
" L1 E) `; K1 ^3 R( K! l7 ?7 k
2 Z& w7 U0 i& u( E, o% }% U图 34
* i/ g5 R; L- h8 [; q8 h
8 p; U) l+ }- J" c点击运行按钮,开始烧写程序,烧写成功后Console提示信息类似下图:
6 o1 G+ Q0 o/ n, d+ q0 @( ]
" A& s+ B/ v+ |# M3 o5 G9 E1 c" ?8 y" ]( P3 n9 ^' n0 V
图 35) v6 ?5 B  d8 v) {
0 n: D" E& r  T, T3 {: |) V: a$ ^
拔掉仿真器,开发板打到对应的启动档位,程序即会正常运行。# r+ m# O' h( J3 Q
烧写多核多镜像文件这里的GEL文件使用DSP_C665x.gel文件在"Demo\TargetConfig"文件夹下。请提前安装好python 2.x以上版本,安装程序在文件夹"Demo\HostApp"下。
8 ]" \/ `( x, O以下步骤实现将多核多镜像文件烧写到NAND FLASH,具体烧写步骤如下(部分类似烧写步骤参考上述小节,此处描述关键步骤)。
, _: M* l+ e7 L  T在"Demo\HostApp\MultiCoreBoot\Image Create\Config"文件夹下用写字板打开deployment_C6657_bypass_prelink.json文件,修改对应多核镜像文件路径,然后保存关闭,如图所示:% R) }2 e' P! Z0 m% l
" n! V1 [1 ~. W/ j
* M6 g" q+ Z  G# s( N* G0 {
图 36
$ S2 P5 k  M* q8 k, D/ s
3 ]/ k" V' X% x, K返回上一级目录,以编辑方式打开Build.bat文件,修改C6000编译工具的路径和python的安装路径,保存关闭。再双击Build.bat文件,即可生成单个可烧写文件C6657-le.bin,保存在同级新生成的images文件夹下。
' g" |2 x' }5 n8 j, T& e6 k% s" F% ~. M9 q

( u2 o$ Y9 I4 x  T; [图 379 C2 P9 X( G$ h6 ?0 ~: z# i
: _: {. H+ h4 o  g0 E
打开DSP_C665x.gel文件,将启动镜像格式从默认的ibl_BOOT_FORMAT_ELF修改为ibl_BOOT_FORMAT_BBLOB,然后保存。
7 k: w# H5 ]9 }4 p% K& R
7 L* V8 `7 l8 a5 ], O9 E" L
) j- I  {& s2 W# b5 J+ u图 38
; X* f' B$ F& g$ n; N- h  ]) C, _. E  e& v/ k/ W- i
连接开发板CPU,加载i2cparam_0x50_c6657_le_0x500.out文件,保存在文件夹"Demo\HostApp\MultiCoreBoot\IBL Config"下。6 G4 B. t+ }- `0 o) {9 m

8 b8 _* R! F3 D  {( c; K% O8 j
# g3 d6 S* o! K& Y图 39$ D8 U' r0 o) X) U6 X& f' ^4 S
" D, c, r) m# y/ R: G1 w
先点击运行,然后点击"Scripts->EVM TL665x IBL->SetConfig_TL665x_main"。- z% ~3 C2 D* w& Z+ z6 ^9 E
# @# q' x3 s; n: R% D

) J/ i0 e5 X+ I& G8 G图 40
) p6 J( M# ^9 j* G9 \* R2 D
  ^5 }  R/ E, g1 t# h再在Console窗口下,按入回车键,显示修改成功,如下图所示:
: c( j7 A3 F1 a
+ l3 \8 p* H  ~% v0 N' [7 e
$ d6 T7 n0 E" L: M/ ]图 416 M, h' ]7 v1 X
# m/ l" _. ^$ S3 c4 D
还可以通过IBL配置控制启动模式跟CPU风扇动作。修改DSP_C665x.gel文件中ibl.EvmConfig.Fan的值,TRUE为开启,FALSE为关闭。) P9 ^1 z) ^5 k' ^+ J" B

4 X- Z. ]& \9 W5 `2 I/ ~% b8 \1 {, w- L% Q
图 42( ^4 n6 ^. p" G! L4 T% `  S

# A  d5 c* {. B通过IBL配置从而支持全部的Rom启动模式,光盘里参考文档中有《DSP C665x启动模式汇总》。当ibl.RomBoot.Enable=TRUE;IBL会根据ibl.RomBoot.Mode设置的值修改启动配置寄存器然后跳转到Rom Bootloader执行剩余启动流程(注意,此时不会再执行IBL启动,所以需要IBL启动的话该配置项目应当设置为FALSE)。如图中设置ibl.RomBoot.Mode=0x00001811(仅低16位有效):' H0 x$ Z3 q4 m, x9 e! J
; F+ V4 c7 N3 r% M% Z" E' B/ z
$ E7 Y/ k6 Z- V3 G0 N
图 43) o0 f7 V. ]! k7 E

; G$ t8 A$ `* n# ^5 t低16位0x1811=0001100000010001b,此时启动开发板从用户的角度相当于从RBL UART0启动,这时可以看到串口0打印出"cccc.....",在此期间通过串口0向开发板传输启动表(Boot Table)格式可执行程序即可完成启动。
- u! v7 J  K3 C6 }- ?: u) s# q) r1 F; B/ h2 a8 \' H
9 B3 [, a/ j9 m6 M6 I& h# N
图 44. e5 F: q& M5 ~& E) v% X9 ?. y
4 Z# o: f" }, I5 I0 b; o; D. {
按步骤加载烧写工具程序,修改C6657-le.bin程序文件名为app.bin。然后加载多核镜像文件。' T9 N" t! G4 s0 Q, i
点击运行按钮,开始烧写程序,烧写成功后Console提示信息类似下图:
0 ]) \$ ^7 d: a2 ~2 r2 h
6 x2 ^2 l; @9 ^5 q" [: @' {/ k( `图 45
2 E% ~6 Q3 p; n, h2 S7 d5 z- r) w( [( f1 A9 [* X
拔掉仿真器,开发板打到对应的启动档位,程序即会正常运行。6 ~. V- v: n* b' O( Y' Q
软件仿真使用CCS进行程序模拟运行,用户不需要连接硬件以及仿真器就可以对程序进行验证,适合于偏重算法的程序。
: G& d0 p) w# d$ h3 U/ S工程配置:Connection选择Texas Instruments Simulator,Borad or Device选择对应的平台,点击右侧的Save,保存配置,如下图所示:6 F: H( _  B$ s& E9 Q" A) `
. S3 U7 c( G* A0 |" P, D- s

) u# G. x- z3 I. ]9 {0 n图 46
, P4 k& \/ B& f8 X& w* @1 m6 p% F- Z. I2 A
按程序加载步骤加载镜像,即可进行软件仿真。, T1 u( W7 J7 p

4 Q& c$ }) }1 w& [* {: m
作者: shuddkk    时间: 2020-9-23 15:10





欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2