多个独立程序之间跳转问题 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3924|回复: 2
打印 上一主题 下一主题

多个独立程序之间跳转问题

[复制链接]

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
跳转到指定楼层
楼主
发表于 2016-8-27 09:37:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题背景:现有两个工程,第一个工程led1中包含一个asm文件和c文件,asm文件实现向led1.c程序入口点跳转,如附件中所示。第二个工程只有一个c文件。三个程序的入口点分配如附件所示。
$ j  t% O& L* k* b问题描述:在asm文件中跳转语句是“B _c_int00”,但我有两个c文件,也就有两个_c_int00,所以总是无法实现跳转(个人猜测是这个原因)。如何才能实现正常跳转?1 ?! G* Z4 U. z' h  f1 q0 k
补充:不能改变工程及文件结构
0 P3 L5 N' g; a3 W请各位大神答疑解惑,必感激不尽
1 g& w; A9 T6 N7 [. O. i5 }

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2016-8-29 08:52:37 | 只看该作者
这个程序是测试通过的 其中的地址就是 _c_int00
* U; y( {6 |& D# f6 V' X8 J& y' o5 Q8 Z$ M* F  h. B
  1. /****************************************************************************// f/ O) J( S: f) ^5 T/ {7 O
  2. /*                                                                          */+ q9 y4 h  T7 M, r* ?
  3. /*              BootMenu                                                    */
    " F) V( @  e" d
  4. /*                                                                          */
    * Q4 S$ O, U& T2 Q- S5 F' V
  5. /*              2014年11月07日                                              */% N; e4 q6 j: l
  6. /*                                                                          */
    ; B/ q+ f8 h1 s$ ?# R- [
  7. /****************************************************************************/& l( }, D( Q; x' j& ^1 @7 B8 D$ {
  8. #include "uartStdio.h"* Z5 H1 g# ^" y- d( E" [; [7 _6 A

  9. 5 K% M; ~8 w, [2 D$ C$ _7 f5 h1 q
  10. /****************************************************************************/: l* W1 k: o+ ~- {
  11. /*                                                                          */
    - n2 T3 U2 Q0 B3 U
  12. /*              宏定义                                                      */( {  N- L9 k  J+ g; W8 n
  13. /*                                                                          */& i1 U6 b+ A4 C5 Z- T, \+ b5 c
  14. /****************************************************************************/
    $ [7 g/ j$ S; N9 j+ @6 m* q) y
  15. : h# ~" t3 o5 M) O# O
  16. /****************************************************************************/
    , q% C6 T  e' \- Z3 e5 j* y; k
  17. /*                                                                          */
    4 C9 i- H- p# [
  18. /*              全局变量                                                    */( _& |/ N- \" ~1 M2 m
  19. /*                                                                          */
    ' c7 k7 P4 n+ H6 ?
  20. /****************************************************************************/) j3 N) Q; y$ E2 \0 P7 H# G  T
  21. unsigned int EntryPoint = 0xC0000000;
    + x0 J3 L# E6 U1 l  o/ S
  22. : T* o2 s0 W4 z% S4 g: y" K& Q3 B
  23. /****************************************************************************/
    7 E1 t  S) @5 e+ O: Y# s+ X
  24. /*                                                                          */" f, d9 D3 m6 B! m7 y( }" U
  25. /*              函数声明                                                    */
    8 S9 R" H) Q+ M# t1 n' }9 [* ^
  26. /*                                                                          */
    ' V$ {/ x! ^+ L2 V9 y* T
  27. /****************************************************************************/3 ^' H2 \  _# B' c" f+ C
  28. void (*AppEntry)();' g0 a) k) u: G! ]
  29. 3 f, T; n8 w+ P! \2 y& y  Q9 v& G# b
  30. /****************************************************************************/
    - s; K& z2 q% f. w$ Y
  31. /*                                                                          */* t. ?; F% f3 D: n7 D
  32. /*              主函数                                                      */
    # Q4 {. p2 _& q$ H# C( q
  33. /*                                                                          */
    ) l9 |, ]7 D6 L- M
  34. /****************************************************************************/
    * j8 T0 L$ r6 H/ u
  35. int main(void)
    5 |+ I  Q8 }9 p; a; Z" C
  36. {
    4 \0 ?/ r8 N3 F  @) i% W0 b6 W) m  k/ I
  37.         UARTStdioInit();$ J* u/ w3 i2 G( t
  38. ( N8 N: ]# p0 R
  39.         UARTprintf("\r\nTronlong DSP TMS320C6748 BootMenu\r\n\r\n");/ r/ A  W* ^/ ^" K

  40. 0 n6 d! J' U8 s0 B0 Z$ a
  41.         UARTprintf("0.StarterWare LED Test\r\n");, C; ~5 h$ |0 p
  42.         UARTprintf("1.SYS/BIOS EasyEvm Test\r\n");3 A  ~- |- k+ ?; }9 |7 l; S
  43.         UARTprintf("2.StarterWare USB OTG HOST Test\r\n");: J: W/ }4 X  [- H7 z5 C+ I0 x
  44.         UARTprintf("3.DSP/BIOS USB HOST / USB OTG Test\r\n");$ s% m2 f3 L& g3 |$ t1 f, Z5 \' H

  45. ; T5 t0 Y/ n" i6 L) I
  46.         UARTprintf("\r\n");6 S2 Q) x/ c9 f$ D; S. q% Q
  47. * i: x2 C3 w  b; G5 V! Q0 |, Z
  48.         unsigned char val, status = 1;
    ' W4 ]7 `" d5 K' p+ |9 i, x
  49. Choice:! I2 x# q( _  g' S* E
  50.         val = UARTGetNum();$ c8 h' H! u3 Q2 x5 s" L
  51.         UARTprintf("\r\n");
    4 y# a" n) g8 N7 [% G- n4 b' [

  52. : ]: G) r8 j0 U. w6 \" k
  53.         switch(val)
    0 a: S* E, r% _
  54.         {
    0 z0 Q/ l& j, I( a( O0 ^9 z% O
  55.                 case 0: EntryPoint = 0xC1000000; break;
    2 r, X( Q# S- w( ^- V( t
  56.                 case 1: EntryPoint = 0xC0251FE0; break;" A- q) M' @$ P( h$ j6 `  q( _
  57.                 case 2: EntryPoint = 0xC2000000; break;
    1 Z% l7 J# R( F2 M  D5 O
  58.                 case 3: EntryPoint = 0xC541DEE0; break;8 J. c; E* g, m! @

  59. ) P" [8 j& r! ?* \( J) Z2 ^1 O8 A& J
  60.                 default: UARTprintf("Please input a correct number.\n"); status = 0; goto Choice;+ [- j) ^2 n8 F* n! h
  61.         }
    7 F2 H' h3 L+ l0 v6 X
  62.        
    & Q$ O: N9 T! p. U; O
  63.         if(status != 0)
    5 H9 k, `: F; C8 V& Q7 s
  64.         {
    ; ?# |6 m: a& O% o. n/ N% Z
  65.                 UARTprintf("Starting Application ......\n\r\n");+ e: M& `7 w4 h" |
  66. 3 L# L. E! h$ |+ `6 h2 y
  67.                 AppEntry = (void (*)(void))EntryPoint;+ }2 V* s- G! P
  68.                 (*AppEntry)();
      p, P8 {; M! n7 K4 {% s9 c
  69.         }
    # u1 _4 g$ E! C( n) ?! T1 T
  70. $ ^1 x$ r) ^  Y8 Z- a) X
  71.         return 0;8 H; k) w9 {" G
  72. }" c4 N7 X; Y) R; |: ^% J& X) f
复制代码
  c2 \) i, _1 f# g- o* Q
* V: H* E- v( a- K6 O- n+ u
回复 支持 反对

使用道具 举报

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
板凳
 楼主| 发表于 2016-9-4 20:48:58 | 只看该作者
您好,我试了一下这种方法,结果报错了
& @' e" l% \4 e2 E( C4 C- O/ \1 x$ e* ^6 R. D# W

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-4-30 15:25 , Processed in 0.038831 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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