|
前 言
, r5 Q; n0 a8 `5 r& R0 s0 c, o5 V u6 y( D( J: _9 n) }
DSP板卡一般通过仿真器进行调试,包括程序的加载与固化。由于众多应用场合对产品体积、产品密封性均有严格要求,或我们根本无法近距离接触产品,因此终端产品很多时候无法预留JTAG接口或通过JTAG接口升级程序。此时,在不拆箱的前提下实现程序的远程升级,则显得尤为重要。% q% }. W+ Z. W& ^; i% C
' z; m1 z6 k4 T. `5 Q/ {
基于以上考虑,为了让嵌入式应用更简单,创龙科技(Tronlong)基于ti TMS320C6678平台提供了DSP程序远程升级方案:串口远程升级、网络远程升级。7 b/ S0 \( E9 T8 ~4 A
7 k& U8 \# o; W t8 X; e H2 U- {8 v* K: C6 R! u- Q
1 硬件平台
c$ o7 s$ c% P' h7 v" M本文基于创龙科技TL6678-EasyEVM评估板进行演示。
# l8 |# e1 H5 s* ^; L7 r& i, C, R3 X6 G6 }4 E* d
TL6678-EasyEVM是一款基于TI KeyStone架构c6000系列TMS320C6678八核C66x定点/浮点高性能处理器设计的高端多核DSP评估板,由核心板与底板组成。核心板经过专业的PCB layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。) a, z3 n) I/ x$ I9 S9 E1 l+ m- E
9 p$ x3 Y0 d6 s9 X& n
评估板接口资源丰富,引出双路千兆网口、SRIO、PCIe等高速通信接口,方便用户快速进行产品方案评估与技术预研。
/ X ~/ j# q4 p, [+ \2 \8 \4 Y​
! t1 n6 Q& h* m9 E6 E" g6 @& w' N ?+ K' x' P0 ?
/ I: \% Y2 @. w1 x# u

6 k3 ?' L* J' ]. I9 U7 q `7 z4 _# _: h& E2 Q+ v
5 u) V* c. y) ~6 N1 N' S
开发案例主要包括:; K* ]; q6 B j: }
(1) 裸机开发案例4 n, D* t) v% D2 K7 i
(2) RTOS(SYS/BIOS)开发案例) h% Y4 w) w/ o* M
(3) IPC、OpenMP 多核开发案例
6 V/ ]. O1 I( Q( V1 F. b(4) SRIO、PCIe、双千兆网口开发案例0 X* q) l+ [, q- v3 j3 b, l
(5) 图像处理开发案例
5 `/ C7 t2 |9 B/ f) q1 c( R(6) DSP算法开发案例
- T4 a @% Y- H: l(7) 串口、网络远程升级开发案例
2 K2 p1 U/ \8 w2 y
) P0 V0 G, n+ r- [6 B# n案例源码、产品资料(用户手册、核心板硬件资料、产品规格书)可联系厂家免费获取4 H4 ^- v4 e# ~4 d) \
: ~; H0 v( B7 O# ~% B9 k
2 串口远程升级方案4 ]9 M! @, a3 R% M" t8 Q! x
- |7 a) c9 v# I6 @
( i) `- s; l# m- p% E, r) k) k. |5 K# B4 o
- @7 z X: m. ?/ c0 d
. V& J1 n3 G* e) X) v, D
; y3 ?8 r3 {- @; F' B
! t, H9 f+ B' c9 K% g; R6 ?4 L0 P. c3 j, j2 ~1 t; }
6 g4 k; n1 y3 [5 }# O$ X2.1 案例功能
: r% r3 j/ P- C: v$ X
, ~+ k4 z/ }, @3 e5 A' K6 M* PPC机使用串口调试终端软件SecureCRT,通过串口将用户程序远程固化至NOR FLASH或NAND FLASH。* {. z5 \. `# l
# g- M+ ?, P) X) E9 N
5 Q: e; w! w5 Y7 G u" r& _3 e7 ]/ H
2.2 案例框图
; P8 y6 n! x0 f, B4 v! X R" V' J& C( R4 e, y
) r3 c. s# M. `3 b; `3 s

2 m5 K& N ~ p4 Q0 S! M& U# B) ?1 _+ j. }
# ]" w! |9 l/ W2 B3 c7 c9 {0 c' K; E$ Z, w4 u. L2 ^
2.3 关键代码
0 w! B3 y4 l; {- J# s. c* B6 l9 P4 A0 X
(1)主函数简要说明。% x4 _" k3 j7 q! E4 s
6 H, F- O7 B7 i" K6 {

. W/ v( @ |# Y
+ W" w9 _3 @5 H" Y4 o, A / `0 A9 d7 v2 F9 H9 s& d
5 r6 Q1 v2 M& M) C' F
1 n4 g& K6 c+ F" Z& c4 P N9 o
4 f3 d9 X, q w, B Z6 ?) \, F, o
由main函数中flash_type变量指定固化用户程序至NOR FLASH或NAND FLASH。
& V' M' d: J2 m0 V. \1 p6 e+ s$ `0 ?/ T' o- y+ |" `$ h
; w1 j$ ?5 I) O* f
8 } w. c1 o, O& e9 b8 W* H! O9 {" } T5 ]7 k1 Q, o
" `9 L; p& K/ K0 o# r+ J2 _
3 网络远程升级方案
" @$ @! t' z- M! r. x; W+ R* z( d. q+ [
5 t$ b, D& x% t0 b v! V' L, T7 Z. P/ z
8 g' B+ l2 \* f
1 f* n8 E1 \ B. f8 q" m; N9 r! m
' F6 m$ x9 k* _. i1 g( I v" N4 z3.1 案例功能9 [ y: j0 [) m }' i9 f
9 h" v) n. h* K4 i通过网页界面对评估板的NOR FLASH或NAND FLASH进行读、写、擦除操作,实现程序远程固化至NOR FLASH或NAND FLASH。# t+ c/ n0 k% d2 L
5 a3 f+ }5 F, Y; ]) r7 U3.2 案例框图
' x7 T2 R, l3 H0 A2 l
" c# d4 b0 D0 ]! F. O+ j8 j2 D
" N, l! K$ W# O, D8 ]1 x1 m1 P& G6 p
3.3 关键代码(1)初始化网络子系统。
1 R7 t* j$ A1 ^& X* `+ R
2 O* [7 y9 P5 x$ ]: c, ~2 s, P 9 x6 H, q8 f. n- |0 b/ }
3 l1 _8 Y- x% f @" ?
; j9 `4 F; c! i: {" f; L) }9 ~; ?
(2)动态创建ndk_client任务。9 Y; w! x. Z+ s. P% g
" M3 w) F% H$ M7 n4 C* U
# x$ Y9 G6 q9 H2 i( [0 i( P
% B+ K( O7 p2 x! o6 i(3)默认使用DHCP模式自动获取IP地址,如需修改为静态IP地址,可参考如下说明进行配置。默认适配ETH1网口,如需使用ETH0网口,可参考如下说明进行配置。2 K z) s. W& M+ Y3 u0 H
9 d) T4 _- F2 }+ j9 D
9 [; H, Q) Q D/ Z z7 B
. I% t/ I9 D2 d. j: a% `9 |% N
, \; x$ d$ x' }6 a0 [2 A9 c. p
* d* M, V/ L7 j- I
(4)创建HTML 网页,并添加网页功能所需的Web网页文件。# d- w% \- N* I3 b: N
{) T {2 b4 Y6 k y! R* {
+ p' k1 C$ P- p8 u4 P$ \2 h" W7 { Z
9 n+ N0 z7 r: T/ I+ U(5)将配置写入NDK配置中,并初始化NDK子系统。+ X0 D' k* z0 a& S& k V

2 F1 F& C# R4 n3 K8 U5 R9 u" g$ q4 \' P. ~
- p* C; {* t! K) s( [0 h& n2 \(6)通过MAX_POST_FILESZ配置网页上传文件大小。
" S+ n+ [- [ }7 [, y4 M 1 ]* s& J" ^( I3 E8 E# z
) M3 B/ U/ P: F& v$ K' E/ tproject\webpages\flash.h
9 }. W5 U3 @' T, H4 W2 @5 t+ b: O- a% h
(7)通过AddWebFiles()创建网页服务所需元素文件。" B. w9 R( C7 o: c4 f+ @: l A1 e
" e9 E- U; o8 }9 z1 E1 J) c : \& P/ ?% ?, \# |& u& Y5 z
0 f( ^/ C- X6 h% }- M
project\webpages\webpage.c
; N1 C0 ~: e' w
2 l- g$ W m) G$ B. w9 p- p(8)创建Flash编程界面和响应网页操作函数。3 S# l2 @6 d2 B/ t8 s- D9 R
) W D* E! c, p8 ^
' T% D$ l3 ^# U6 W3 p0 V: ~8 S
" Q; z m) L& u. S- b/ g1 Uproject\webpages\flash.c
( _2 P8 R5 @' s Q) e8 w. v; {! K, _
(9)选择编程设备。
; B9 r1 j" v5 X0 f2 h2 P8 B4 t% ~- S; p4 {6 E# [: g$ q7 W& f
& v( `& \+ N# |% U7 V, c4 ?9 }0 z
project\webpages\flash.c7 ]8 ~& s7 t2 o/ { P/ b7 }
(10)初始化设备并读取设备硬件信息。
) W* Q x5 M/ m5 ~0 \7 J) d& h Y- v" C% I" p6 q
; G; f$ q- n5 ~; D0 \( K6 X8 R- V
project\webpages\flash.c: ~, ?$ ~9 ^+ [$ ?2 L' p) ?
(11)数据写入操作过程说明:创建Starting Address、File to Write选项,将上传事件与flashwrite.cgi进行绑定。
* z6 G. d2 |. f; m3 F& Y: o( Y) O Y( v ]

8 m1 G( `9 t% gproject\webpages\flash.c( e1 Z7 P+ X8 S- E- ]( |
(12)按下Write按钮后,将触发serveFlashWritePage(),在函数中获取上传文件并保存至write_buffer中。 m# p [0 i C9 _+ i* S
7 l- s3 y" U( L: ~; j8 v

* S5 p4 i6 q* X# O' W0 I7 [project\webpages\flashwrite.c1 }8 w+ Y& B: b ^, Z! v9 s
(13)固化用户程序可执行文件至对应的编程设备中。
; K4 h }8 a* {( x; i8 z/ P/ R
- A; m& Q$ e9 Z( x9 W
project\webpages\flashwrite.c
. t1 S# A' U, V3 k; h' V0 v% P5 j! }本案例实现了网页的基本功能,如需新增其他功能,可修改案例工程webpages目录下的相关文件。HTML文件default.html修改后需转换为default.h并替换原有文件,再重新进行编译,修改方可生效。webpages的tool目录下提供了HTML文件转换工具包php-8.0.0.rar。
& R5 c/ Y" V7 s* g6 r
+ @. u8 [: ?0 U) w8 k1 W I& b T请将webpages的tool目录下的php-8.0.0.rar压缩包解压至Windows非中文路径下,并确保已正确安装BIOS-MCSDK多核软件开发包。
N. N8 f0 y2 a9 Y. K3 {- T, S! E! n0 k- T5 d! l5 I4 G: [
4 a3 F; @4 \8 J' S0 [3 U, u0 }% K
8 G6 L4 @, b. B& k" s' S3 u
将修改后的default.html重命名为default,并拷贝至php-8.0.0.rar压缩包解压目录。
* u" L0 D- o1 W& L6 o7 S8 w
5 r) Z1 s# n# v$ V Y5 N' g8 `9 y
$ }- k" ?! h+ L0 u+ D0 G) B2 G9 T# \+ D! ~
双击运行convert.bat脚本,即可在当前目录下生成default.h文件。/ g. N9 g% v) ^; Y
( E9 g: q( M" C6 L7 a

8 e8 J6 a, `+ b! X, \4 X6 t* m" A! p- E) b( N/ e
4 免费试用
+ i. y0 D* m" S* |可申请TL6678-EasyEVM评估板进行快速评估!
8 o* ~( E0 E/ ~+ m4 A6 V0 D8 N( a8 B
, v" Z% j; s/ K4 ^
6 更多推荐3 o e: p- i/ t. ^+ ^* E
) s# y" ^# L! U: \; T; X" p
1.C6678+K7视频采集处理方案4 V N5 }4 S" d8 O
; L3 d! r2 A+ s6 m2 I6 @
9 S2 y# D3 ^1 S# `1 g 2.FPGA+DSP的高速AD采集处理开发详解2 ]3 m/ Y1 w. f/ j) e
! e+ ~! g6 T2 E/ h2 i
; [/ Q) A3 X$ \* G7 j |
|