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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
跳转到指定楼层
楼主
发表于 2016-8-27 09:37:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题背景:现有两个工程,第一个工程led1中包含一个asm文件和c文件,asm文件实现向led1.c程序入口点跳转,如附件中所示。第二个工程只有一个c文件。三个程序的入口点分配如附件所示。
: x5 D, j( B0 d: y问题描述:在asm文件中跳转语句是“B _c_int00”,但我有两个c文件,也就有两个_c_int00,所以总是无法实现跳转(个人猜测是这个原因)。如何才能实现正常跳转?
/ t+ n$ H# K1 j2 `  |补充:不能改变工程及文件结构+ S+ E& }3 v( k  u+ j% @! \
请各位大神答疑解惑,必感激不尽3 I: e2 N8 D" L2 g) ?& M

本帖子中包含更多资源

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

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

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2016-8-29 08:52:37 | 只看该作者
这个程序是测试通过的 其中的地址就是 _c_int00/ a( S- S* q' f! y
2 P1 T" d) K9 U* w1 d
  1. /****************************************************************************/
    * }& r' W* N, [# L7 P$ P
  2. /*                                                                          */
    2 K8 w1 n8 q* _4 H6 m1 n; n
  3. /*              BootMenu                                                    */
    5 C, a" P+ i; d; |% t9 \" Y
  4. /*                                                                          */
    3 E- S0 L5 w5 Z! h4 n) {% J- G
  5. /*              2014年11月07日                                              */
    / |! H6 d+ Y, v
  6. /*                                                                          */
    + K3 N9 M- h) v" }
  7. /****************************************************************************/1 B! i! p3 J/ E8 \) @# _. A
  8. #include "uartStdio.h"1 y0 E6 w& G  U" C: x+ t

  9. : m2 M4 G1 @1 m- H/ s
  10. /****************************************************************************/
    ) u2 `& ^; Y7 i* v3 Z
  11. /*                                                                          */
    8 C# c1 J# C3 m
  12. /*              宏定义                                                      */
    5 `( n+ p0 O, m3 \5 M
  13. /*                                                                          */
    , J6 `2 I0 U; `+ d. k( e7 G5 E, {
  14. /****************************************************************************// `& R' _  n- a
  15. & i2 z, \: d$ @1 n( L0 J  x# C! p
  16. /****************************************************************************/5 }' F. R3 Q" ?6 `
  17. /*                                                                          */, h2 m+ S, j( T0 f$ Q* ?% q
  18. /*              全局变量                                                    */  [' S$ x0 o4 n# y5 c
  19. /*                                                                          */6 u& }+ D' H2 x1 E
  20. /****************************************************************************/1 u% C: a( `; M; W0 n; Z9 d
  21. unsigned int EntryPoint = 0xC0000000;
    : n; D" u* e% v- U
  22. . \1 \8 ?# ?- ]* d4 D
  23. /****************************************************************************/
    ; U' n$ _% @% r
  24. /*                                                                          */
    % x  e7 q3 [$ }. p! Y, }% S
  25. /*              函数声明                                                    */- ]! }( _9 L& d
  26. /*                                                                          */1 h) V  \$ W& c) \: H( W/ b( Z3 j
  27. /****************************************************************************/
    / R3 s* }9 b2 N: \- z0 D3 a. q" D
  28. void (*AppEntry)();- C, i( u" A. n/ U
  29. % a8 H) M: G1 ~
  30. /****************************************************************************/0 J1 P, C! J* |$ [8 Y
  31. /*                                                                          */
    ; @  G, Q4 Z, c9 ]7 l  w0 m5 Y- T( {( W
  32. /*              主函数                                                      */8 r8 @, i9 U# T  R1 K/ h( F3 k0 z
  33. /*                                                                          */' `" s/ O3 x/ z0 _+ ?2 J- P
  34. /****************************************************************************/$ ?8 [2 O% h: |
  35. int main(void)
    2 z8 H+ U! q9 W+ B
  36. {
    5 q: \- O( p3 Y% E( ~
  37.         UARTStdioInit();
    8 |# s9 Q) M4 V1 k- i4 a  M

  38. # u6 Z) O& R+ E" o8 q9 B! C8 [# j
  39.         UARTprintf("\r\nTronlong DSP TMS320C6748 BootMenu\r\n\r\n");7 J1 v% D) D! ~. \4 Q/ u
  40. ( R2 L4 F6 T1 n1 \* V! W- B. k
  41.         UARTprintf("0.StarterWare LED Test\r\n");2 B6 \( ]  h$ f/ s% j4 ^
  42.         UARTprintf("1.SYS/BIOS EasyEvm Test\r\n");* R/ I, ]) W$ Q& r8 l0 L$ i
  43.         UARTprintf("2.StarterWare USB OTG HOST Test\r\n");7 [- K5 y  S* k% D1 K& q0 S- B& `
  44.         UARTprintf("3.DSP/BIOS USB HOST / USB OTG Test\r\n");
    & Q6 y  w" C# T; e! K. s
  45. 3 c$ L8 C  l" S. W3 f4 l
  46.         UARTprintf("\r\n");
    2 ~, P% |+ m# _' c3 I/ z# r

  47. ) o: P: O: @7 D+ i
  48.         unsigned char val, status = 1;
    9 n* x4 T# V9 l
  49. Choice:# F& _. [  M; S2 T
  50.         val = UARTGetNum();
    2 e& z3 W0 M8 K5 z/ S* j
  51.         UARTprintf("\r\n");* \$ J* j9 J9 ~

  52. 9 v5 M7 u+ Q5 [) V8 `
  53.         switch(val)
    / p: X+ y0 E' y, m' W  I
  54.         {
    # J& y' [) q& _
  55.                 case 0: EntryPoint = 0xC1000000; break;
    9 q2 i/ `1 Y  x6 B0 Y# p: O
  56.                 case 1: EntryPoint = 0xC0251FE0; break;
    % |0 [7 F- N- P0 Z% _& d& N
  57.                 case 2: EntryPoint = 0xC2000000; break;
    $ p- s0 Y5 r2 n+ ^# P
  58.                 case 3: EntryPoint = 0xC541DEE0; break;
    ! p4 d  U) j! h+ s8 }0 @6 ]7 h
  59. - o+ p" {1 `* l6 e, c
  60.                 default: UARTprintf("Please input a correct number.\n"); status = 0; goto Choice;/ a0 ^* v4 H# J1 y: r5 n
  61.         }! `$ `" Q7 g  D
  62.         * E) M' L1 x1 \3 i5 L+ Y: W! Z, z
  63.         if(status != 0)
    + b! R! T' e- y' i; Q
  64.         {
    / h2 y( C0 _, Q: S# Y
  65.                 UARTprintf("Starting Application ......\n\r\n");% A: ~& H$ |, n. K. u

  66. & X1 u( ]1 x: l0 l% d! K7 d
  67.                 AppEntry = (void (*)(void))EntryPoint;: a+ E2 M( T: h% k+ v" `: I
  68.                 (*AppEntry)();
    $ J5 S1 c1 D! Z. Q
  69.         }
    3 e$ p8 s  A$ Y  E0 U  v. ^( Y

  70. ' f) Z) U4 ^; [' t& ]
  71.         return 0;' _- Q+ E+ e" f
  72. }( F# f+ [% Q$ r+ N( X% G# Q
复制代码

# M2 l; K" [: U; A+ B8 N
- a1 e# u1 w4 W  ~0 H8 o
回复 支持 反对

使用道具 举报

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
板凳
 楼主| 发表于 2016-9-4 20:48:58 | 只看该作者
您好,我试了一下这种方法,结果报错了2 A% I! r+ J9 V* k+ Y$ ]  e

3 o# J* I# g  m9 z! v

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-3 12:16 , Processed in 0.044699 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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