找回密码
 注册
关于网站域名变更的通知
查看: 243|回复: 1
打印 上一主题 下一主题

TMS320F2837x开发例程使用手册

[复制链接]
  • TA的每日心情
    奋斗
    2020-3-25 15:17
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2020-8-3 10:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    基于仿真器的程序加载与烧写
    • 查看仿真器是否安装成功
      5 H( k. {$ j8 t- [( t8 f8 y- v
    广州创龙配套多种版本的仿真器的工程仿真配置文件,均在光盘目录下"Demo\NonOS\TargetConfig\ccxml"里面的。" b) v0 @7 L2 m6 |
    如下TMS320F2837x的开发,均以TL-XDS200仿真器为例。开发板断电,连接好仿真器和开发板,并将仿真器的USB口插进电脑USB插槽,开发板上电。右击计算机图标,点击“设备->通用串行总线控制器”或者“设备->端口”,查看是否有对应的仿真器的选项出现,如有说明仿真器驱动已经正常安装,否则请先正确安装CCS。$ w& L( k1 g) Q
    & i4 S. q" [( R5 }7 c: k9 P
    图 1% y& p+ U" n# Y
    % I8 Q' u% m2 ]! p
    CCS集成开发环境自带XDS100及XDS200系列仿真器驱动。如果仿真器无法正常使用,请检查是否存在驱动冲突,XDS100系列仿真器使用FTDI芯片,请检查是否与已经安装使用FTDI的USB转串口驱动冲突,如使用XDS200仿真器,请检查计算机中是否正确安装USB转串口驱动或者尝试重新安装计算机主板芯片组驱动。8 v2 R4 ^7 l. {1 n9 _1 I! v

    , f' @( \+ ?8 `" n5 N) A1 ]* K: y
    • 设置工程配置文件信息
      % T& y6 U) D2 u7 H- f
    请先按照相关软件安装文档安装CCS,然后打开CCS集成开发环境,点击菜单"File->New->Target Configuration File",如下图所示:
    6 U2 `  L/ D1 e- p0 D' Y- K
    5 q) z6 Q! e' o$ l+ E图 2
    9 L( k: H# d/ G- ?3 Z( j8 g- T0 N6 Z
    2 I  [4 |4 }! N9 M& A在弹出的界面中输入工程配置文件名字,然后点击Finish。如下图所示:
    7 t/ J; w- j1 E: L; P' v1 k
    ( x9 d  c: Y* s  [5 T5 s! _$ b图 3
    , v& q% @, _, a4 ?
    " ^  f) d9 d* {9 i在弹出的对话框的"Connection"下拉框中选择对应的仿真器类型(如使用TL-XDS200仿真器请选择"Texas Instruments XDS2xx USB Onboard Debug Probe"),在"Board or Device"下拉框中选择对应的CPU型号:TMS320F2837xS,并点击保存。如果CPU是双核,请选择:TMS320F2837xD,如下图所示:$ X  R( i6 e9 ^+ G" n
    4 u; X& b, M1 ^3 P- _$ M
    图 4) i! T8 I3 O- o# Q

    & m. P+ X3 c7 @9 i4 r: q仿真器连接开发板,上电后,点击"Test Connection",测试仿真器是否连接成功。如下图所示:
    8 [3 _( O. z0 V* [/ H. s
    6 r5 \1 ^( I" k图 5
    , E/ T2 I7 s! o6 x. ]! o& x7 m: ~) `
    / e0 A: u4 j( Y7 S5 h7 Y: l
    • 加载GEL文件6 a* r+ A* q/ R! o
    GEL文件主要用于在仿真调试的过程中对CPU进行初始化,如PLL、DDR等,还可以执行一些调试操作。CCS集成开发环境自带"f2837xs.gel"文件,为默认选项,可在Advanced界面配置。# n& X5 \# |, O9 m5 _! l
    % K$ F% |1 c+ j0 l' a, P0 b" v8 ^( o
    图 6
    . M$ N* [: B& ?& g1 x+ c' f" C- A6 ^1 u" o
    点击CCS菜单"Run->Debug",弹出以下类似界面,可以看到C28xx核,是可以加载GEL文件和程序镜像的。2 o9 m4 T& s, ?8 @
    0 [0 K9 T& \2 P6 _
    图 79 r* T. }1 H2 x: Y

    8 }, F2 \2 f1 U. `1 |右击对应的DSP核,在弹出的界面中选择"Open GEL Files View"选项,右下角会弹出"GEL Files(TMS320C28xx)"对话框。8 ]4 x7 M& x. A7 {
    ! Q, O& ]6 X/ h; |% j) S' F
    图 8
    3 t4 Q5 H7 i/ F6 G- d
    - Q, g" E, a4 H& Q* z! C8 H若前面没配置,可在对话框内点击右键,在弹出的界面中选择"Load GEL"。选择对应目录下的GEL文件,再点击确定,接着右下角的"GEL Files(TMS320C28xx)"对话框会出现Success提示语句,如上图。# V6 _5 P% L3 `1 g# U) I

    9 i( ]: Q$ L+ W( {( g" R( c
    • CCS连接开发板CPU0 ^, q3 L+ V8 s, d( B
    右击对应的DSP核,选择"Connect Target"选项,会显示Suspended状态。这说明CCS已经和开发板CPU正常连接起来了。/ j& ?8 E0 `$ T( u
    & B' y, Q: i# ]2 d* I( Y1 G
    图 92 [) P1 j8 Q* y" `8 j& [' h
    ! d  \) ?9 W9 }3 G! h6 k
    备注:如果此处提示"No source****"的信息,不是错误信息,可以将其忽视。
    " f, B( Z" _( ~, X  l, g+ O1 X' u, E$ f# H; `+ O$ z) C; V, w
    • 加载程序镜像文件
      - l6 M. v- K; Q/ x. K% j
    点击"Run->Load->Load Program",选择程序镜像文件(光盘"Demo"目录下有用于演示的LED.out文件,现象为底板LED灯被循环点亮),可选择并点击OK。接着点击绿色三角启动按键,程序即可正常运转起来。
    / {5 n3 g; W: z/ j( [9 |) J( a
    / R* S0 V- w6 A5 q. e% c图 10! H+ v! H4 q% p
    ! \1 t. O- J3 ~" |7 \

    ! J+ w* D( |  j+ M# u
    8 N6 E* h" \- ?+ L图 11
    1 I+ T) l1 P' f* u
    / Z3 s/ @0 E' F' e. |; g+ z0 u& K$ ^
    • 烧写程序到FLASH3 r1 Y1 `& s9 T9 A8 f( S( E
    烧写单核裸机程序到FLASHCMD文件是编译完成之后链接各个目标文件时,用来指示各个数据、符号等是如何分配到各个段,以及每个段所使用的存储空间的,通过CMD文件可以实现将编译生成的.out程序烧写到FLASH。具体烧写步骤如下:( k6 ?( I- e+ H$ U- X7 C0 t
    添加CMD文件+ p  ?, b' l: i5 n+ B
    右键工程点击"Add Files…",在弹出的对话框中选到"2837xS_Generic_FLASH_lnk"文件,路径为光盘"Demo\F2837xS\NonOS\F2837xS_common\cmd"目录下。3 w5 V6 v: ?# B5 ]' t

    9 t9 X3 \" b4 s* A* H  B图 12
    ! v5 ~" i; |3 }8 z. B' z5 x* M5 A$ Z
    ; k7 J+ {4 y/ ^' E& U& s/ O8 y+ L' H9 e+ m# W- ]# {
    图 13
    % y/ l7 d& S4 @% b* l4 R
    - P1 E1 C1 V' u) q( t# K在弹出的对话框中,选择"Copy files",然后点击OK。
    " P; r' W0 J% o6 ^/ k
    , z  Y8 B0 k- H$ H& E图 14
    ' M- o8 T# l4 u  i# I# B2 D0 N# B+ E& b7 I1 L) @9 y
    编译程序镜像文件
    8 j3 \& D3 g) }7 L' n/ G先右击工程中"2837xS_Generic_RAM_lnk"文件,点击"Exclude from Build",再右击工程,点击"Build Project",即可对当前工程编译。
    6 s) F$ c7 X9 n7 P% v$ y' e+ w4 \3 T0 @) v( r# _7 p0 ]  F
    图 15$ \4 o/ L8 g* M  r2 c

    : @- V# G( Z/ K' J! r烧写程序镜像文件
    % q% ^& z0 c4 I3 p( \点击"Run->Load->Load Program",选择刚生成的程序镜像文件并点击OK。加载完成即烧写完成,重新上电就可以运行程序。
    ) K7 [/ }: y6 ^4 `2 r: g
    # d7 ?4 v) V0 p* e图 16' U8 X+ z; c) v% Q: E

    3 P9 e4 D7 L! O$ z: b3 {! L如果遇到烧写效果与仿真效果不一致,则有可能为例程中存在延迟函数,导致运行效果延迟较大(几百秒以上)或无法运行,解决办法如下:7 N; c: Q0 Q4 e8 D9 b0 R5 j. `
    请双击工程里的main.c文件,在文件里查找是否有"DELAY_US"函数,如下图:: P+ b- w8 a$ Q8 o
    - b9 F; T2 \' r2 q1 k
    图 17' T3 T0 w8 _" l3 J! M" ^7 ?
    ; R. D/ O' U% T0 n  k. `5 z/ i

    # j2 u, s, F8 B# P& h" \: {/ Y图 18
    & U7 T$ G0 R: q' i
    " j3 @9 e8 w1 ^& p7 v将其注释即可。- l* _) S$ X5 L. S5 T! D
    如有,请在文件里加入外部定义和复制内存地址代码,并重新烧写,添加位置如下图。* c/ \% Z( z. |% u
    外部定义代码:
    * i: m* o7 ?' B# ^extern Uint16 RamfuncsLoadStart;
    1 }9 N+ a2 R0 ]extern Uint16 RamfuncsLoadSize;: w  s5 C  e/ T. z8 {% D, _
    extern Uint16 RamfuncsRunStart;
    3 \% @6 i0 |8 n+ X: d8 i. a8 j% |3 P复制内存地址代码:: h, W+ ]' e- L. F9 y, @# O7 I& u
    mEMCpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);7 R  O5 W) ^, N

    ( a( r, P, |4 L6 Q8 ]图 19
    7 a+ a# I" A9 |/ F9 g' P, F( P2 Q, g2 N2 C# S2 s
    :如果遇到烧写不成功,请按以下流程进行操作:' R" a5 e( q! w( x- D& Q1 A
    • "Help->About CCS->Installation Details->Installed Software",搜索flash,点击"Debug Server Flash",Update更新即可。
    • 更新完成,提示重启CCS。9 ?' Y, V3 [* u( V! \! F$ ?5 h
    重启完成后,Debug Server Flash版本会变成Debug Server Flash 6.1.0.1425。
    % r; n% ~) n- j% H# q2 h& F' {6 w5 m1 _4 n4 }$ ~& s
    烧写双核裸机程序到FLASHCMD文件是编译完成之后链接各个目标文件时,用来指示各个数据、符号等是如何分配到各个段,以及每个段所使用的存储空间的,通过CMD文件可以实现将编译生成的.out程序烧写到FLASH。
    - V* c$ y! n  h以双核工程led_flash为例,具体烧写步骤如下:
    - M4 M" @3 N$ L& [按照工程文件的导入步骤,将led_flash_cpu01和led_flash_cpu02的工程,导入到CCS的Project Explorer窗口,如图所示。7 H1 l: P5 Z& F7 n: C

    6 d+ }1 q  l+ J: q/ P图 204 H8 C6 a4 j) K! u, F( n

    % k* h$ m0 j3 M打开led_flash_cpu01的工程目录,右键点击"2837xD_RAM_lnk_cpu1.cmd",左键点击"Exclude from Build"选项。
      b- x* m: k" M7 b0 F
    8 q4 i# e) N3 i! K. X/ Q8 Q4 l; N4 }+ W9 P3 [
    图 21# I4 b5 v, ~2 |
    ) R4 \5 ], g( [/ l
    然后,在led_flash_cpu01的工程目录下,右键点击"2837xD_FLASH_lnk_cpu1.cmd",左键点击"Exclude from Build",取消该选项。
    0 ^4 n- V2 _5 V% Z4 B
    3 Z5 I4 I' x6 y+ k6 G8 H图 221 o7 R% o; p3 e) ]  h* X( L. ]1 N

    , `4 q9 M  T9 a9 \在main.c文件的定义中,添加以下代码,如图所示:
    & C+ h8 u. Q8 C/ a% v* ^#define _STANDALONE
    $ r4 l* J: h+ G- T) w#define _FLASH
    ( y$ \) F- c; }#ifdef _FLASH
    6 n- r" e0 h* D4 O  sextern Uint16 RamfuncsLoadStart;
    % a+ Q: ~+ x, m* c7 Kextern Uint16 RamfuncsLoadSize;9 `% N/ ^7 d( b  U( r6 P1 C1 l" [
    extern Uint16 RamfuncsRunStart;
    8 W/ v& m1 V; O8 e#endif! _+ Y' F- A  l/ i( D8 E
    : j" b. W% I3 n" K
    图 23
    7 {7 n, M. X* J# `
    ' \& }* D( K5 p0 k在主函数中,添加以下代码,如图所示:
    / V4 _7 ~1 W0 H#ifdef _FLASH
    9 H; Q" t8 `6 g5 L2 Kmemcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);
    ' a, E0 t" V1 Q+ C( ^# ?% o#endif! Z7 `0 Y, e3 Q

    ' ?, Q7 t/ {4 M7 P#ifdef _STANDALONE
    * P& @  U6 Z) V/ n1 O#ifdef _FLASH
    " D4 O$ w+ `- h //发送 boot 命令,允许 CPU2 开始执行应用程序
    3 N% ]; `1 }1 a: o; M2 \7 qIPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH);
    " D* V' y& T  l# l' M  S# s4 \) t#else8 W/ X: `5 j; }4 b& q* `
    // 发送 boot 命令,允许 CPU2 开始执行应用程序9 f" n+ G4 R( [
    IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_RAM);
    3 A" Y  [& e/ P3 q$ k7 q) m- }8 t#endif
    ; Q5 ]0 z& u8 _# }; S9 I#endif  X" t8 s, u0 p9 e7 @
    " D2 ~3 ~& U% f2 U- i' O6 C
    // 片上 Flash 初始化
    & |# Q2 s* M7 j6 B! W! w#ifdef _FLASH% ]- K! f. i9 C; L! e
       InitFlash();: @7 t- `# C! ^6 [4 _
    #endif
    * ?9 ?2 ]; d9 X$ p& `1 ~6 Q6 e, n' v$ m/ o  D: j) |
    图 24
    ' o; U* X& {  n0 h3 O( K
    * u% R/ B/ x. D9 W5 R保存修改,点击"Rebuild Project"选项,重新编译工程。
    0 {3 i. ]3 y" y
    / D+ S( u1 K) c( c图 25: B4 [$ ~1 }3 B) ?4 m! B

      }2 h# a1 _0 M' p打开led_flash_cpu02的工程目录,右键点击"2837xD_RAM_lnk_cpu2.cmd",左键点击"Exclude from Build"选项。5 g+ u1 [/ t: S: k9 J, ^3 |
    4 {( w& X5 I$ x/ K
    图 26
    . c2 F: _* e4 J1 x/ J5 E2 \- z& \& v7 @  B6 U0 D
    然后,在led_flash_cpu02的工程目录下,右键点击"2837xD_FLASH_lnk_cpu2.cmd",左键点击"Exclude from Build",取消该选项。) `" L; U! C3 t8 Z

    3 @5 S0 ?* C" g+ G6 Z& u5 z# j图 27; m1 d0 g) d: N5 B) D
    & v" C0 [4 Q: |5 y' d9 A3 s
    在main.c文件的定义中,添加以下代码,如图所示:: b# |& `9 ?! |% r1 \3 Q
    #define _FLASH
    ! f, |1 |: p" |) i5 x" _% e0 x! F) @#ifdef _FLASH* y# i# O8 L0 Y$ A: d  E7 Y
    extern Uint16 RamfuncsLoadStart;
    - r7 |, h' V! h" e4 o& ~. z, Q) Mextern Uint16 RamfuncsLoadSize;
    : P4 s& Q' g$ X% [$ A7 q8 i* lextern Uint16 RamfuncsRunStart;: h' H( H* O% ~0 ?0 n
    #endif, |1 l! Z3 U4 ^, a+ X
    + d  `" @+ v" ^6 D" }
    图 28
    : k# q9 ?, F1 p+ `
      w# k* ^5 g5 l: l  L) f) V在主函数中,添加以下代码,如图所示:% E! b% m2 Y, v' m1 R" u( l
    #ifdef _FLASH
    0 z) h: i5 y4 Q/ ?( \' cmemcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);5 B/ G. S" F- C# o8 q4 h
    #endif- w* S& p7 u+ Q% V. f  D6 _

    . ~1 ~. u0 p, c9 J; c  T% ?// 片上 Flash 初始化8 e  {" a% c; r4 Z
    #ifdef _FLASH
    $ I5 a  N6 j' J0 h0 O+ C1 {0 d   InitFlash();" O6 R% ?4 a( ?7 `2 u0 ?) l2 x
    #endif
    , }/ J% m% D9 p# S1 n/ o7 X$ r  v& T. B/ N
    图 29  z, w; Z8 e  `8 J3 }& k

    * d$ o3 \. o4 F, Z+ J4 Z2 n- y保存修改,点击"Rebuild Project"选项,重新编译工程。
      A5 h! i! h) ?# o1 z# ~- U. A8 i$ R7 }  H
    图 30
    0 u% W2 k3 o! j; {, i8 h: G) o. O5 |9 _  [# {  J
    按照工程导入步骤,将生成的led_flash_cpu01.out和led_flash_cpu02.out文件,分别加载到CPU1和CPU2。
    , g. b6 i/ ?8 Z. ]3 H开发板断电,然后重新上电,就可以正常点亮,核心板上的LED流水灯。4 K" O1 }) c0 B' t9 t
    烧写双核SYSBIOS程序到FLASH以SYSBIOS的LED工程为例。% L. P* n# }" k' F5 }
    将光盘资料的Tools目录下的"TMS320F2837xD_BIOS.cmd"文件,拷贝到对应的工程目录下。; C# w2 B9 f' R; E+ M

    9 M" G( e7 f9 p7 ?; d7 L图 31
    8 h/ w) u' x" b5 n* ?
    6 C8 f  S6 U0 |# j  E4 n按照工程文件的导入步骤,将光盘资料中"Demo\DSP_F2837xD\SYSBIOS\Application"路径下的LED工程,导入到CCS的Project Explorer窗口,如图所示。( Y  j& X) y! T; N7 v2 ^

    ' J' X6 `+ m+ b9 m) `图 32
    ) r" L2 @; J) b+ g& s9 ]1 {( s5 q9 Q: P! R& F" f) l" P2 H, V/ D
    打开sysbios_led的工程目录,右键点击"TMS320F2837xD.cmd",左键点击"Exclude from Build"选项。
    $ e9 l* O7 B" E; l$ u8 @. l
    ! X( I7 e0 |. e7 x2 x4 U5 p图 33; _" D. K  L* [7 t
    ' O2 S' z" c0 Q2 j: X5 }; E
    双击工程目录下的app.cfg文件。
    / J/ i! e5 f% R
    ; G) d0 Y) R' j  J! @图 34
    % e2 Q' N1 L# t. V3 N) f+ \
    - T9 x9 p" c2 H% D: \, k" q7 N点击Boot选项。' ]/ A7 \6 ~9 m

    3 v! N+ |' A3 v  f+ d" ]图 35
    2 c/ l" y9 b" U" a+ Z5 I) e2 H0 k# e- F, Z- _  n8 ~
    确认Boot配置,如图所示。
      }4 ^0 e) f% K& P' t( O
    7 @" A, z+ T9 f! d1 p9 k" u图 36! \  e. t2 f6 a5 @" _) \

    + B% l. K0 _/ Z9 U: w: Q+ z保存退出,右键工程,选择"Rebuild Project"选项,重新编译工程,如图所示。1 U! h- H) i& m& H: T1 q" p8 k* p
    7 g% B: `! b3 ~3 u5 V( H. o+ U
    图 37& N% b, o( K. B, y5 ?( k# D

    , b" {5 `. }$ m* G; ]按照工程导入步骤加载sysbios_led.out文件,然后点击程序运行按钮。0 K+ E! `0 U& w6 V
    开发板断电重启,烧写到FLASH的流水灯程序,即可正常运行。
    8 d6 D1 h# V+ y0 L( I$ n
    4 p  S+ k# h7 ~

    该用户从未签到

    2#
    发表于 2020-8-3 11:21 | 只看该作者
    TMS320F2837x开发例程使用手册
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-28 00:41 , Processed in 0.093750 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表