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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
跳转到指定楼层
楼主
发表于 2016-8-27 09:37:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题背景:现有两个工程,第一个工程led1中包含一个asm文件和c文件,asm文件实现向led1.c程序入口点跳转,如附件中所示。第二个工程只有一个c文件。三个程序的入口点分配如附件所示。
' Z5 [9 l5 J1 O; n/ [; S问题描述:在asm文件中跳转语句是“B _c_int00”,但我有两个c文件,也就有两个_c_int00,所以总是无法实现跳转(个人猜测是这个原因)。如何才能实现正常跳转?" V8 A( M8 z) m# ?
补充:不能改变工程及文件结构
  q3 u6 Y- ~1 b) I# Y请各位大神答疑解惑,必感激不尽
: Z5 P% J0 {6 r; u" t9 ~8 z

本帖子中包含更多资源

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

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

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2016-8-29 08:52:37 | 只看该作者
这个程序是测试通过的 其中的地址就是 _c_int00
3 S+ Y- x3 W+ I( [  s( y
( \, P' N& |6 Q+ T
  1. /****************************************************************************/
    : N. X4 {$ |' T0 V1 U% L3 n6 m
  2. /*                                                                          */
    - Q8 {6 R+ o. X+ C" S
  3. /*              BootMenu                                                    *// P! U' V' ^; n4 a* p2 \2 C; x
  4. /*                                                                          */
      c- [) b( c" u9 |  Q- ^
  5. /*              2014年11月07日                                              */
    1 t& o5 i. l! Q1 ^  V8 D
  6. /*                                                                          */# T+ j) J) [- P/ a
  7. /****************************************************************************/! c0 ^5 u8 j; L
  8. #include "uartStdio.h"
    6 v- j3 Q% i, ?+ h) O3 k. M

  9. 8 ?, a0 ]/ g$ ^% Z( G  ?% A
  10. /****************************************************************************/# Y! _0 }" u5 `( i6 ]
  11. /*                                                                          */$ s: I9 Z6 X/ c- J* O/ R# F" v
  12. /*              宏定义                                                      */7 ^) K* J( c4 X
  13. /*                                                                          */
    7 T' @) P7 @2 }! H. S5 u
  14. /****************************************************************************/" o# `5 [/ u, p) I- K6 H) p9 I% I
  15. ) n5 K. Z4 [% y0 l
  16. /****************************************************************************/5 Q- ^2 N6 w) y% \7 e
  17. /*                                                                          */, N3 K3 E% ]! u
  18. /*              全局变量                                                    */% v4 `7 e  r/ _3 D" t, D9 E  n
  19. /*                                                                          */
    + i! {; x! m2 i
  20. /****************************************************************************/5 H# z/ Y1 b" Y: H( v- q
  21. unsigned int EntryPoint = 0xC0000000;
    - j+ m1 B( S9 H9 D6 K* I% {
  22. % `/ J8 Q. ^4 H2 y
  23. /****************************************************************************/
    + i. V6 V2 B1 |3 t
  24. /*                                                                          */0 G1 I. }5 O% ?. Z0 w3 \# ]* q
  25. /*              函数声明                                                    */. q% z1 W* G6 }9 x: d. @9 O
  26. /*                                                                          */
    5 A9 l3 \: J! a& `: l
  27. /****************************************************************************/( x7 U! I' q8 ?: Q9 k+ I
  28. void (*AppEntry)();
    - `$ j( T  [8 A  ?

  29. : A* |/ g& }  z; A- e+ c, n' j' P
  30. /****************************************************************************/
      p' _  |' {! `! k" [& x
  31. /*                                                                          */2 B9 W4 l8 ~: t
  32. /*              主函数                                                      */
    / ]* |: u# f2 ^9 a# Z& W5 C, O
  33. /*                                                                          */6 Z8 i; p7 c3 q, x6 i1 a7 ~2 ]
  34. /****************************************************************************/% V8 @2 }( i* N# P) }' Q
  35. int main(void)
    1 `2 o0 R% B& h: P
  36. {+ k' o4 _) C# r: m
  37.         UARTStdioInit();
    " f" n- c: X% C; h: Y
  38. * f+ A% h; M4 ~! r$ U! ^
  39.         UARTprintf("\r\nTronlong DSP TMS320C6748 BootMenu\r\n\r\n");7 `0 \) D; U/ q; @; z

  40. 2 C: M7 X. d' f- x: Y
  41.         UARTprintf("0.StarterWare LED Test\r\n");
    - c, q3 A3 u8 D2 P: k; i5 d( ^2 ]5 m* A& S3 f
  42.         UARTprintf("1.SYS/BIOS EasyEvm Test\r\n");
    5 n0 Z3 \% ]! ]9 a2 ~% t
  43.         UARTprintf("2.StarterWare USB OTG HOST Test\r\n");+ u# D  t9 C1 e+ a
  44.         UARTprintf("3.DSP/BIOS USB HOST / USB OTG Test\r\n");% ~1 q; C" \6 o8 [; z9 E9 n
  45.   Y' G" P! k& ?& i( h% ^! Q
  46.         UARTprintf("\r\n");
    : {  q  l7 u/ c  @' _/ E! q. |+ \
  47. 6 z4 K4 t6 ^  s- W1 w9 ?
  48.         unsigned char val, status = 1;0 u, g; G, l0 `6 F" [. g. B
  49. Choice:8 m7 J0 c& v% f0 w6 A! o8 u% h' f
  50.         val = UARTGetNum();
    * D  C9 @  s0 X; V
  51.         UARTprintf("\r\n");, V& U/ Q4 |( }! p" p

  52.   k3 Y7 _- C5 d8 @% ]1 p
  53.         switch(val)
    , `7 Q, D# y4 d7 k0 G  ~
  54.         {
    # x. Y! ~* c$ F' y; X
  55.                 case 0: EntryPoint = 0xC1000000; break;  A5 Z0 ]; H: R1 b; |
  56.                 case 1: EntryPoint = 0xC0251FE0; break;
    , B$ y8 E4 r1 W* i; J
  57.                 case 2: EntryPoint = 0xC2000000; break;" ^4 P) \8 x7 f0 o. |3 ~5 l+ O
  58.                 case 3: EntryPoint = 0xC541DEE0; break;) I+ D. O+ w: R' d6 Z, c
  59. ! ]. t) d, J% W8 K
  60.                 default: UARTprintf("Please input a correct number.\n"); status = 0; goto Choice;
    1 R/ n7 W/ {% n8 g
  61.         }' c1 ?" k7 v% z4 x% r# A
  62.         ; A+ V7 }0 q$ ]) j) @
  63.         if(status != 0)) u8 c& O& J) y- D9 e' \# l
  64.         {
    2 k, A: A0 V) o) T1 h9 G  H/ @+ S
  65.                 UARTprintf("Starting Application ......\n\r\n");
    ' [  ?% N6 v; t0 t' R0 R

  66. ! r$ M- F3 F+ A+ D' x, E- i: o) a, U
  67.                 AppEntry = (void (*)(void))EntryPoint;9 G& B; W& ?6 T8 _
  68.                 (*AppEntry)();: a9 F/ }# U8 g8 R: ?% y
  69.         }/ l* @9 _6 `& d" z! Q  d
  70. ' ^( }: H: G' t7 o$ ]/ {
  71.         return 0;
    1 z9 j4 M& F, w5 d
  72. }
    ! q" z" o% P) N$ w
复制代码

. Z$ \/ b: r, i% }3 k
; G; H; Z. |! `3 _( M/ ]
回复 支持 反对

使用道具 举报

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
板凳
 楼主| 发表于 2016-9-4 20:48:58 | 只看该作者
您好,我试了一下这种方法,结果报错了
7 u& `/ m! w) l7 l& L
& g: {1 w7 K( e* N, I1 u

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-16 18:01 , Processed in 0.036660 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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