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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
跳转到指定楼层
楼主
发表于 2016-8-27 09:37:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
问题背景:现有两个工程,第一个工程led1中包含一个asm文件和c文件,asm文件实现向led1.c程序入口点跳转,如附件中所示。第二个工程只有一个c文件。三个程序的入口点分配如附件所示。! Y* m7 _$ f' J2 ?! e8 j
问题描述:在asm文件中跳转语句是“B _c_int00”,但我有两个c文件,也就有两个_c_int00,所以总是无法实现跳转(个人猜测是这个原因)。如何才能实现正常跳转?& B- C' d9 W) }! |* q6 J
补充:不能改变工程及文件结构
% M% n5 f- a4 p( \, x请各位大神答疑解惑,必感激不尽) h3 u6 I3 T5 t4 g  s

本帖子中包含更多资源

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

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

使用道具 举报

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
板凳
 楼主| 发表于 2016-9-4 20:48:58 | 只看该作者
您好,我试了一下这种方法,结果报错了1 q6 ]1 o# Q6 P6 M, W& I- v7 G) I5 S

3 a" i' Z2 i8 w+ ]

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2016-8-29 08:52:37 | 只看该作者
这个程序是测试通过的 其中的地址就是 _c_int00$ Z8 R+ l6 w  X/ \/ K- w
( B( p) P. x4 ]! X( U
  1. /****************************************************************************/$ ~0 q& e% y3 m
  2. /*                                                                          */
    9 [2 A7 g1 J9 R" }" O
  3. /*              BootMenu                                                    */  W0 o! G+ J) r0 J$ C
  4. /*                                                                          */: Q; b" x! N( U' a8 I- @2 C4 s
  5. /*              2014年11月07日                                              */
    $ |6 Z7 m% k3 D8 ?: X, ^. ^
  6. /*                                                                          */
    ) l2 @6 P5 t# v6 d7 r3 V2 f
  7. /****************************************************************************/
    + M; n3 m; @/ K- W  M# Y& e: ?
  8. #include "uartStdio.h"; @; {# Q2 ^% f7 C* z; l
  9. 5 d4 u; D. v1 Z
  10. /****************************************************************************/
    * r' G5 K0 A' s0 R( p
  11. /*                                                                          */# R8 ^5 w$ d7 ]9 _% U
  12. /*              宏定义                                                      */
    # I& J" m/ N; T: m
  13. /*                                                                          */
    + M5 o2 ~- G5 r3 w* b+ M( |
  14. /****************************************************************************/( W5 q8 J, y" {0 F+ e' p
  15. 3 \& }4 i+ v, A: O* [
  16. /****************************************************************************/
    # a! W' s9 H% b+ r& y8 M" i
  17. /*                                                                          */
    4 y, j+ N9 u6 N9 Y
  18. /*              全局变量                                                    */
      u+ x  y9 M9 a, a: X( u' `
  19. /*                                                                          */
    ( O+ ^' x' }0 |  @: ^5 y
  20. /****************************************************************************/
    : S6 A4 E: f/ p* Z! Y/ n
  21. unsigned int EntryPoint = 0xC0000000;. E( i; C5 a1 H: Q; k
  22. $ [( R& a; R8 L" @8 w! v
  23. /****************************************************************************/
    + }  X- G1 R3 c" r7 X! i& g
  24. /*                                                                          */* ]7 h" I" ?, B) A/ E/ _8 i
  25. /*              函数声明                                                    */3 a6 u; @! O7 h' a4 @1 o
  26. /*                                                                          */
    3 l) G' e& _9 e+ O% e& p
  27. /****************************************************************************/
    " e* X5 y4 C: S( k/ O% x
  28. void (*AppEntry)();# Y7 w7 G# m1 o% `, Z3 G) g2 }
  29. % l9 ?5 M& U( H9 D3 O/ q" n
  30. /****************************************************************************/
    # B. E2 x: k1 y# [/ q7 @6 L
  31. /*                                                                          */
    0 r! p; q% D) o2 V
  32. /*              主函数                                                      */% R" K! m: Z6 l
  33. /*                                                                          */" e0 K, g- x) X' q7 e% l
  34. /****************************************************************************/' ?$ k7 _& g+ i, B7 p" m
  35. int main(void)  @' ?$ P) _  {+ r
  36. {
    2 o2 X3 ~- Q/ n5 y4 _
  37.         UARTStdioInit();
    % Q3 p4 g5 u  L1 }/ W
  38. % Q6 u+ Y0 [! q! |3 x- |6 ^! a
  39.         UARTprintf("\r\nTronlong DSP TMS320C6748 BootMenu\r\n\r\n");. F8 E) v  X- f' }: \
  40. 9 C+ K: `+ s. t5 N
  41.         UARTprintf("0.StarterWare LED Test\r\n");; a% A7 s& M) D; L/ E
  42.         UARTprintf("1.SYS/BIOS EasyEvm Test\r\n");) u, P4 n6 e6 g8 E* \- z
  43.         UARTprintf("2.StarterWare USB OTG HOST Test\r\n");* S5 D" h- E- t! V# `0 \: r/ O
  44.         UARTprintf("3.DSP/BIOS USB HOST / USB OTG Test\r\n");/ U4 z  T% O; f
  45. * Q6 u, x! \% x3 _( R& U
  46.         UARTprintf("\r\n");
    7 M0 W: U) |. B9 X
  47. * Z/ H) |2 ]9 ?
  48.         unsigned char val, status = 1;7 j3 b7 p+ F+ t4 b1 O; M
  49. Choice:7 ]/ W+ l7 L- n% b$ R+ _+ i
  50.         val = UARTGetNum();
    / |% w6 J; l- U- \7 x8 q! q
  51.         UARTprintf("\r\n");
      T- g1 J7 T! d# J  T. l

  52. , M  F2 ~/ [% r: z
  53.         switch(val)8 m" K0 y0 s* b' t, d; k; T- A
  54.         {
      i+ J! f" y4 R3 P+ H/ u
  55.                 case 0: EntryPoint = 0xC1000000; break;- ]) o+ D7 P% d! }  L- ~* R% B
  56.                 case 1: EntryPoint = 0xC0251FE0; break;
    9 G" d5 W5 n, e8 ?9 a% Y
  57.                 case 2: EntryPoint = 0xC2000000; break;
    ; h3 L7 F% u0 y1 R5 X7 h) C
  58.                 case 3: EntryPoint = 0xC541DEE0; break;
    : U# Q1 Y+ T: l2 J2 g5 K6 c4 K
  59. ) a% K4 G8 e0 @
  60.                 default: UARTprintf("Please input a correct number.\n"); status = 0; goto Choice;8 o& x$ Y5 t; j* n& {; }
  61.         }- j$ u4 y% b' E1 H; ?2 y& v* {
  62.        
    4 _4 `6 U# s$ n1 u
  63.         if(status != 0)' Z! q) S1 S" o  Q
  64.         {
    ( Y- n& S& c  `+ t# k& J" f' m$ _
  65.                 UARTprintf("Starting Application ......\n\r\n");
    ( Y/ I! \9 X' y- Z5 h

  66. * T( @0 W& w: k$ G3 c+ _
  67.                 AppEntry = (void (*)(void))EntryPoint;1 T$ U1 ]9 L( @9 Y1 r+ O! e
  68.                 (*AppEntry)();% K8 [( [) Y: i' z
  69.         }
    / @. ?0 u% s" W+ K& k
  70. 9 ]2 }" H9 l- q  j# i' r3 {# _4 l
  71.         return 0;
    9 Z3 N0 [& S' l* q' ]; t
  72. }
    0 t: U; a( b2 ^
复制代码
, q1 G" k7 E7 J+ v; G) m

; r' v- y; |  V1 Z) a- @( p
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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