多个独立程序之间跳转问题 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
跳转到指定楼层
楼主
发表于 2016-8-27 09:37:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题背景:现有两个工程,第一个工程led1中包含一个asm文件和c文件,asm文件实现向led1.c程序入口点跳转,如附件中所示。第二个工程只有一个c文件。三个程序的入口点分配如附件所示。3 S1 v  y8 z/ ~4 k+ y4 _
问题描述:在asm文件中跳转语句是“B _c_int00”,但我有两个c文件,也就有两个_c_int00,所以总是无法实现跳转(个人猜测是这个原因)。如何才能实现正常跳转?3 p6 K2 b  ~$ V+ }" h/ @- d
补充:不能改变工程及文件结构) c2 A! P) _$ W4 d
请各位大神答疑解惑,必感激不尽! C6 n' q( ~( f; R8 W# k

本帖子中包含更多资源

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

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

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2016-8-29 08:52:37 | 只看该作者
这个程序是测试通过的 其中的地址就是 _c_int00; F$ b" Y. H3 g8 \9 t/ U

: G$ \( M) h* K
  1. /****************************************************************************/
    : V/ s7 b0 F& [. D! |1 M4 a0 l3 ?
  2. /*                                                                          */, k" E8 R2 M3 O4 N4 U% p2 h+ w1 O. G9 S
  3. /*              BootMenu                                                    */: ?6 G1 k2 _* {
  4. /*                                                                          */
    3 s! H4 Z' D) O- s) S3 r( z
  5. /*              2014年11月07日                                              */
    $ ]& l9 Y0 X$ m) [% k
  6. /*                                                                          */
    - _1 Q+ Z, ^4 m6 l. v
  7. /****************************************************************************/
    + |( Q9 l: k/ u6 g: ~0 q  A- P
  8. #include "uartStdio.h"
    $ B0 I+ N  Q9 B/ T4 z4 P( H& j

  9. / h0 k- {& v) s9 y& u
  10. /****************************************************************************/
    " x& a: N# |2 i4 j2 Z
  11. /*                                                                          */- ]6 d  B8 C4 s% j, ^- p
  12. /*              宏定义                                                      */3 \! j3 R# M. \/ q! y
  13. /*                                                                          */8 U1 p3 P) _, ~9 ]3 Y/ Z
  14. /****************************************************************************/
    ; A. d7 V) B9 ~+ g1 S0 H
  15. ; i6 M' h% @5 @" H- G/ {% f
  16. /****************************************************************************/5 C6 ]! W6 W5 ]  x) t. S
  17. /*                                                                          */
    0 b; f- b0 N  f" e
  18. /*              全局变量                                                    *// E% b; }. u. l# U# d1 o
  19. /*                                                                          */
    5 `7 u, O" |7 T( U
  20. /****************************************************************************/
    , P' d8 N# i. S. q' u/ t% Y3 R( e/ o
  21. unsigned int EntryPoint = 0xC0000000;) k$ o3 P' g  C8 U4 n" K) m

  22. * j4 n0 {2 {9 T# x4 H
  23. /****************************************************************************/
      b( Q6 T: F( m: J  G" O$ P
  24. /*                                                                          *// N2 ?+ [* o! Z/ o# Z
  25. /*              函数声明                                                    */( v9 h  M$ S8 d! `
  26. /*                                                                          */8 o4 q( X) V9 E$ C- a
  27. /****************************************************************************/; f4 T4 R: \6 i! t5 T5 d+ }  K
  28. void (*AppEntry)();
    ; L4 J3 R' x3 G6 V

  29. : R- S5 m2 {2 J- W( p( ]6 o  E
  30. /****************************************************************************/" i" a" ?/ G. u' c1 [
  31. /*                                                                          */
    9 V" E6 _' j% E- C* V+ P; H
  32. /*              主函数                                                      */
    ! V* P4 v. ~( ~7 f4 p
  33. /*                                                                          */+ y6 O9 h6 W2 T. Z5 l) H4 K# g5 m
  34. /****************************************************************************/2 n& p5 n5 h6 I& ]5 f8 }! V
  35. int main(void)
    5 R  o( g7 K0 e2 k( V% t+ f
  36. {  H6 M% M* R' a- N+ `
  37.         UARTStdioInit();
    9 x, D8 n! w7 q6 A

  38. ' p: a+ ?9 w3 j: S( d
  39.         UARTprintf("\r\nTronlong DSP TMS320C6748 BootMenu\r\n\r\n");$ L; k# x5 T  H5 D; B  V, G
  40. 8 h5 c9 u* u  b0 d2 @4 H( q1 z
  41.         UARTprintf("0.StarterWare LED Test\r\n");
    + G8 E4 g1 F- W% d# b
  42.         UARTprintf("1.SYS/BIOS EasyEvm Test\r\n");1 }7 b$ V) z+ i+ ~$ T% r
  43.         UARTprintf("2.StarterWare USB OTG HOST Test\r\n");
    ; i7 v1 G6 G. p
  44.         UARTprintf("3.DSP/BIOS USB HOST / USB OTG Test\r\n");
    # x, Z2 y5 B1 A. Q3 _& D$ I4 o  H

  45. * d4 o0 X* D) L& I
  46.         UARTprintf("\r\n");) Q+ F4 c& o" B: A( m
  47. 0 P, o; ?8 b$ q; H7 _: x
  48.         unsigned char val, status = 1;2 S& p. v( ]' m4 H8 }
  49. Choice:
    # m/ q, i) I/ f0 F
  50.         val = UARTGetNum();
    1 N# j6 A3 C0 @# E
  51.         UARTprintf("\r\n");9 s6 O$ j6 x" k! A4 n' u. I

  52. ( d  Y- p% q+ i9 i+ a8 K9 ]
  53.         switch(val)
    $ A& p" W; p: ~! _2 j
  54.         {0 ]$ T8 M! D% ^! f
  55.                 case 0: EntryPoint = 0xC1000000; break;
    1 L. R3 f4 L8 |: S4 W' ?: Y
  56.                 case 1: EntryPoint = 0xC0251FE0; break;& n8 W. K7 X4 L' _0 A; h3 A
  57.                 case 2: EntryPoint = 0xC2000000; break;4 O0 q6 ]8 H6 u" J' j4 O8 e
  58.                 case 3: EntryPoint = 0xC541DEE0; break;
    / G$ C! N6 `  g7 h8 M' j% g: o
  59. 2 z' ~5 H% b5 m1 L2 s; a9 S( G, ^
  60.                 default: UARTprintf("Please input a correct number.\n"); status = 0; goto Choice;( j9 W. v* g1 n% b& d2 W) l; k
  61.         }
    0 w! W9 b( @( Z7 p. I1 u
  62.        
    2 F3 @$ ]' W6 P* @" M- @9 z4 x* f
  63.         if(status != 0)% l  H. _1 P* P" D2 D* b
  64.         {
    $ Q1 e6 }$ z- l. ]: Y- U! Q
  65.                 UARTprintf("Starting Application ......\n\r\n");
    & h: @8 c% \: P/ {

  66. 5 {) g6 y6 C: N* M
  67.                 AppEntry = (void (*)(void))EntryPoint;
    " w3 j* U3 d# i: D1 {! h" H
  68.                 (*AppEntry)();
    8 {: f2 K# m6 q- c! t2 G
  69.         }
    " Q5 G0 C. W. N4 x: a) G/ i& _. `  {
  70. 9 F7 _) p4 d; o* R6 n7 i( w1 m
  71.         return 0;$ b8 s" Q! y. L% P% V3 H+ c( R
  72. }
    * A& W7 l, X7 N/ Z+ N
复制代码

# M3 ~' o/ S9 l' M6 y
2 S, v9 W4 C0 t3 l) b
回复 支持 反对

使用道具 举报

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
板凳
 楼主| 发表于 2016-9-4 20:48:58 | 只看该作者
您好,我试了一下这种方法,结果报错了1 a; y/ u+ s6 l

- g, ~5 f$ t  K" v" l0 O' ]

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-1-31 06:42 , Processed in 0.039022 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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