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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
跳转到指定楼层
楼主
发表于 2016-8-27 09:37:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题背景:现有两个工程,第一个工程led1中包含一个asm文件和c文件,asm文件实现向led1.c程序入口点跳转,如附件中所示。第二个工程只有一个c文件。三个程序的入口点分配如附件所示。& T! X2 b$ k* w7 ^
问题描述:在asm文件中跳转语句是“B _c_int00”,但我有两个c文件,也就有两个_c_int00,所以总是无法实现跳转(个人猜测是这个原因)。如何才能实现正常跳转?
* i8 b/ H+ h. B1 o6 M% m5 A补充:不能改变工程及文件结构
. t$ I: U$ M# ~- J  O5 r+ \请各位大神答疑解惑,必感激不尽
) B* }* i) w1 a7 M2 l

本帖子中包含更多资源

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

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

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2016-8-29 08:52:37 | 只看该作者
这个程序是测试通过的 其中的地址就是 _c_int009 }1 x" Z9 t: r2 K- K

% V: @) ~# L8 `! \# g/ c( `
  1. /****************************************************************************/
    ' g0 D- C! I8 e/ w/ j
  2. /*                                                                          */
    2 D4 a  ^7 y, s
  3. /*              BootMenu                                                    */
    / |1 G7 ^: p4 A9 }' D4 `. n
  4. /*                                                                          */' s' T. e& y, `
  5. /*              2014年11月07日                                              */6 I+ g5 _- ]2 E1 ^1 e7 W( ?
  6. /*                                                                          */
    : {1 n9 {) j  o  l; t% }3 o
  7. /****************************************************************************/
    4 l" H# b* g9 Y  S& [& h5 y: d) G
  8. #include "uartStdio.h"
    # D' G  H' p$ b: I

  9. . _0 Y1 ^0 G$ C# N$ Q% q
  10. /****************************************************************************/
    8 R! H6 n  T$ A' q4 z" o) j, w+ f% T
  11. /*                                                                          */
    ) V/ B5 |: l  ?; a# b& R: V0 k
  12. /*              宏定义                                                      */% w! \1 j/ i. q( v' B% `! F
  13. /*                                                                          */
    3 x4 X+ a9 L+ w0 I$ c; i# Z2 i% ?0 V
  14. /****************************************************************************/) t5 c/ \' N' _7 V" e

  15. + I$ C1 H- U3 J7 I9 M. B- l/ w6 w8 j' P' C
  16. /****************************************************************************/
    ( q( c" Y  Z% C; T8 W  e
  17. /*                                                                          */
    + g4 m0 D# F, i$ C
  18. /*              全局变量                                                    */& n9 n* W2 h7 T7 Z& J9 l
  19. /*                                                                          */
    , y! T1 t# }4 q) `( u
  20. /****************************************************************************/+ k/ n: w: s: p/ J- I
  21. unsigned int EntryPoint = 0xC0000000;
    + ^: t3 V: u% m( @, Y

  22. + o! ?( e" W# t* \/ u0 u# h
  23. /****************************************************************************/5 V3 G% [; j$ _- }# ~' F' V/ z
  24. /*                                                                          */
    ; _0 D9 _# Q7 s5 I6 F7 s
  25. /*              函数声明                                                    */2 L  U5 f. g0 w' B% \+ T* h
  26. /*                                                                          */
      ~7 ~: F: b# Q/ i" S0 l
  27. /****************************************************************************/
    6 Q) i* [8 F" v/ A) R: T# p& @
  28. void (*AppEntry)();8 q& v5 L0 p" Z
  29. & u0 \6 e9 A9 x* v4 J
  30. /****************************************************************************/
    : S5 g7 }1 C( W2 L/ [7 d
  31. /*                                                                          */
    5 [4 `' x# b( B8 D
  32. /*              主函数                                                      */
    % b! M0 z0 I  s0 ]; u# `8 ~
  33. /*                                                                          */
    , a& D. {, w2 _! M
  34. /****************************************************************************/$ H( J3 \; k3 L) q) j$ i& y
  35. int main(void)
    9 d  W+ [& c1 r, d# ~$ f0 |
  36. {
    % ?* i( A; ~; l( }
  37.         UARTStdioInit();
    , a2 v4 G! |5 d. l% _: A- j5 u) E

  38. : M; o# n, r' \1 B  `6 H- r3 t+ R
  39.         UARTprintf("\r\nTronlong DSP TMS320C6748 BootMenu\r\n\r\n");
    . R' S4 |5 g% [' a$ J7 o3 {* p

  40. ( \9 J. D  e0 b6 m
  41.         UARTprintf("0.StarterWare LED Test\r\n");2 o+ Q/ {4 B$ `$ M6 c6 e/ y
  42.         UARTprintf("1.SYS/BIOS EasyEvm Test\r\n");( Y1 L  x2 |* \, w* j, O
  43.         UARTprintf("2.StarterWare USB OTG HOST Test\r\n");
    - u) R9 V9 q8 M9 f& w6 {9 _
  44.         UARTprintf("3.DSP/BIOS USB HOST / USB OTG Test\r\n");
    ! ]9 R9 t% e, A

  45. 4 C! D& l, T$ O' P6 S" w
  46.         UARTprintf("\r\n");
    ; u: S' F* {4 ~$ j7 R7 F$ j
  47. + W" N4 l8 I# k# M9 K/ C
  48.         unsigned char val, status = 1;$ \  w- v" ^! p; q9 Y/ L
  49. Choice:
    ! \) g! I8 ~- q- s
  50.         val = UARTGetNum();
    , E9 u. P, T' d5 M0 R
  51.         UARTprintf("\r\n");
    3 O/ l$ G# n. A  i+ Q
  52. ( |9 [& \( I/ P: n5 k+ \
  53.         switch(val)
    - p. H' I* \$ n* B8 h  |
  54.         {+ z0 V8 k1 _8 R- r
  55.                 case 0: EntryPoint = 0xC1000000; break;4 q2 u- t6 P& Q! p- @
  56.                 case 1: EntryPoint = 0xC0251FE0; break;5 V' l1 k9 a/ O  Z; N; H
  57.                 case 2: EntryPoint = 0xC2000000; break;9 Y4 e) q8 L! J: c" U
  58.                 case 3: EntryPoint = 0xC541DEE0; break;
    ) W# |+ s4 }9 ]  b1 f/ U
  59. 1 Y5 D' z' l* r5 G8 n
  60.                 default: UARTprintf("Please input a correct number.\n"); status = 0; goto Choice;
    8 S$ x" e& D$ G6 z& V% W, o
  61.         }
    9 Q+ b2 T7 @/ p! d
  62.        
    % h9 F9 e0 W( q& I, N
  63.         if(status != 0)
    3 L8 a" b4 Q3 K& B# R1 e
  64.         {5 v* u+ ^$ X# c. I
  65.                 UARTprintf("Starting Application ......\n\r\n");. a4 a) S- C9 F/ [- \! P

  66. * v5 h( [3 A0 J( W" o
  67.                 AppEntry = (void (*)(void))EntryPoint;
    % t% a6 D7 `2 \; j' @
  68.                 (*AppEntry)();; K6 k' ^) U) a2 [
  69.         }
    % `( ?, E7 o$ G# A' T0 c. p
  70. & ?4 n- K" B2 H1 @" |/ J; z( ~
  71.         return 0;
    & T/ f6 ~! H% g; N# f
  72. }% _0 ]" X+ J. [1 c
复制代码

. ~, H- n5 _0 D2 {* g' m+ D& Q$ p: u1 P( B0 u
回复 支持 反对

使用道具 举报

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
板凳
 楼主| 发表于 2016-9-4 20:48:58 | 只看该作者
您好,我试了一下这种方法,结果报错了
8 G& W; L# f1 c6 F8 w/ h/ Q9 ]5 O3 i% U+ e2 r( Y) [

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-4 06:00 , Processed in 0.037194 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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