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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
跳转到指定楼层
楼主
发表于 2016-8-27 09:37:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题背景:现有两个工程,第一个工程led1中包含一个asm文件和c文件,asm文件实现向led1.c程序入口点跳转,如附件中所示。第二个工程只有一个c文件。三个程序的入口点分配如附件所示。- J- @: O( ?1 e2 B
问题描述:在asm文件中跳转语句是“B _c_int00”,但我有两个c文件,也就有两个_c_int00,所以总是无法实现跳转(个人猜测是这个原因)。如何才能实现正常跳转?
% W9 w9 p, \% q补充:不能改变工程及文件结构9 Z# P( K6 s5 G1 v' ~
请各位大神答疑解惑,必感激不尽- D; \* y* ?0 [+ @

本帖子中包含更多资源

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

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

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2016-8-29 08:52:37 | 只看该作者
这个程序是测试通过的 其中的地址就是 _c_int00
, D/ F. i% Q/ s* o
( T7 @! y4 V" T, ]( ]
  1. /****************************************************************************/
      t9 @! U$ k! A# i* N
  2. /*                                                                          */8 ]) @! y) R' A* h) F! {. G- q
  3. /*              BootMenu                                                    */
    8 L; s! V/ {# f) |! X
  4. /*                                                                          */
      \  N2 S$ A! X( ?# n5 ]
  5. /*              2014年11月07日                                              */! b4 P2 |  _$ l' i5 T3 O; V
  6. /*                                                                          */8 J& E3 u3 n4 f- g
  7. /****************************************************************************/$ j+ c4 x) \0 U! H
  8. #include "uartStdio.h"% g5 e& R% b$ h* ?; V) H# d6 t

  9. 6 \# I' `1 M% b
  10. /****************************************************************************/
    8 t5 K3 k+ v3 @  w1 q$ |
  11. /*                                                                          */
    4 d: _1 M# }$ m1 a
  12. /*              宏定义                                                      */0 j+ r3 Z( y3 Z; a: k" \* D9 X
  13. /*                                                                          */
    3 R" [- \: m$ `: }
  14. /****************************************************************************/1 ^4 v& F, Y  k" K0 [

  15. . _4 q5 T  |6 E; C* {! X
  16. /****************************************************************************/
    , k* V$ L% D  Z4 ^$ K7 @1 k% M) v
  17. /*                                                                          */$ V2 j9 ]8 A$ i6 K% o$ ]
  18. /*              全局变量                                                    */- t% ~8 L% b2 M
  19. /*                                                                          */
    3 [3 z2 ~6 _. D1 e9 |
  20. /****************************************************************************/
    , W' ]+ A0 G3 I; U* Y
  21. unsigned int EntryPoint = 0xC0000000;
    % `$ D# y$ _" k7 a

  22. 1 m2 K4 U4 d5 S! G# [2 x) m
  23. /****************************************************************************/- T7 D1 a3 X" g/ p* d
  24. /*                                                                          */2 a4 c! e& _7 s$ L5 X
  25. /*              函数声明                                                    */- U7 ?: B3 S4 H  I# `8 T4 s
  26. /*                                                                          */& m! Z% g# i7 O4 P
  27. /****************************************************************************/
    ) `1 q7 T- n( x% G2 I3 a
  28. void (*AppEntry)();
    " X# P) E3 P: t8 @; F. H6 Z

  29. ' ?% b3 a5 t* x( d6 w- ]
  30. /****************************************************************************/2 C0 w& m/ Y2 B9 `) B( Y) `
  31. /*                                                                          */
    . B9 R" E! W/ |9 l
  32. /*              主函数                                                      */5 q8 Q0 E5 ~& F- V0 H. t
  33. /*                                                                          */
    % y0 ]& J* g2 g( R; u6 t
  34. /****************************************************************************/4 a5 n1 U1 [/ y! W5 Z" k
  35. int main(void)
    0 G/ Q7 X4 ^5 f- s
  36. {
    # E6 q( K3 t1 ^4 X' F* _0 i" I1 `
  37.         UARTStdioInit();! F" v7 u* F1 N8 g7 E, \5 J

  38. , K' f* y1 a) I' ?+ S
  39.         UARTprintf("\r\nTronlong DSP TMS320C6748 BootMenu\r\n\r\n");  B9 H+ S/ I+ @" x! U5 o+ Z

  40. 0 W. |9 L! k; H+ i9 s
  41.         UARTprintf("0.StarterWare LED Test\r\n");6 O& C5 ^6 ]0 L9 ~4 ?5 o
  42.         UARTprintf("1.SYS/BIOS EasyEvm Test\r\n");8 ~2 n- [! ]3 G1 g
  43.         UARTprintf("2.StarterWare USB OTG HOST Test\r\n");
    / t$ S; T0 h( m
  44.         UARTprintf("3.DSP/BIOS USB HOST / USB OTG Test\r\n");
    ; p/ w" l  h5 L
  45. 8 ^2 ?3 ]# `: y! T5 e# X- C  B, o
  46.         UARTprintf("\r\n");
    0 ]# Q+ O" v- h4 M8 x
  47. . n! X; J: E0 b% g% j
  48.         unsigned char val, status = 1;
    " f' I* C) z* J, t2 h/ u+ F
  49. Choice:
    4 g) [+ _' u: S
  50.         val = UARTGetNum();
    ! S8 u/ C7 w" x$ j9 L
  51.         UARTprintf("\r\n");- B) d# E, @5 a% n

  52. 4 `4 w* B- ]2 T
  53.         switch(val)
    ' k8 b3 C- q! X( Y
  54.         {
    % L# }' F, G) h1 v( ~$ w' h2 Z
  55.                 case 0: EntryPoint = 0xC1000000; break;
    . F( h' L" |0 A- v) y% H
  56.                 case 1: EntryPoint = 0xC0251FE0; break;
    " ?! ?+ ~! r4 x, v
  57.                 case 2: EntryPoint = 0xC2000000; break;
    . }. k: B# _0 f7 E( M
  58.                 case 3: EntryPoint = 0xC541DEE0; break;" k9 ^6 s. ?' i- a) w- E# z
  59. + d' N$ ^6 ~0 I& T$ T8 I
  60.                 default: UARTprintf("Please input a correct number.\n"); status = 0; goto Choice;
    9 ^1 r1 ^  \9 q. ?) ?3 F
  61.         }
    + B+ i( ]9 g3 v4 |
  62.        
    4 p( L* a- D0 T  }" \) b
  63.         if(status != 0)2 ]. |, c- h& w0 q
  64.         {! \, E# R. S; R! @* p+ R" `/ ~% N
  65.                 UARTprintf("Starting Application ......\n\r\n");
    " ]! u/ ^" R6 W* Y
  66. . V; z) Q# F. C) z6 `+ D! j% s
  67.                 AppEntry = (void (*)(void))EntryPoint;
    5 ?7 \( _+ H$ ]2 R% z: x
  68.                 (*AppEntry)();
    ! k7 }( I1 Q1 [1 z
  69.         }( i9 T2 n: _/ x5 d5 `8 v  i0 S5 p/ |1 B6 \

  70. ; G, s0 G) h1 L1 ~$ [: t
  71.         return 0;  t7 K+ t" d- B6 ^0 U, n
  72. }  L' z% ~/ Y. X$ E
复制代码

8 o. x, h& W" j. I; v, v2 O
) l: `4 T. ]* g% _4 o" A
回复 支持 反对

使用道具 举报

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
板凳
 楼主| 发表于 2016-9-4 20:48:58 | 只看该作者
您好,我试了一下这种方法,结果报错了0 Q- f* R) `/ a$ a( J/ U# h9 \6 @* j
3 L0 M% J3 P1 h- C0 E' U

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-17 07:22 , Processed in 0.038903 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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