多个独立程序之间跳转问题 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
跳转到指定楼层
楼主
发表于 2016-8-27 09:37:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
问题背景:现有两个工程,第一个工程led1中包含一个asm文件和c文件,asm文件实现向led1.c程序入口点跳转,如附件中所示。第二个工程只有一个c文件。三个程序的入口点分配如附件所示。$ ^9 |5 g8 R8 h
问题描述:在asm文件中跳转语句是“B _c_int00”,但我有两个c文件,也就有两个_c_int00,所以总是无法实现跳转(个人猜测是这个原因)。如何才能实现正常跳转?
) x+ I# l! \; O! i  f# H7 s3 F补充:不能改变工程及文件结构$ p% A. H' Q! [9 |" x. b. x5 g
请各位大神答疑解惑,必感激不尽+ W+ |1 b' W! m& L* R! N

本帖子中包含更多资源

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

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

使用道具 举报

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
板凳
 楼主| 发表于 2016-9-4 20:48:58 | 只看该作者
您好,我试了一下这种方法,结果报错了
& C3 |* w) R& d8 g8 M$ z
6 _) S! J4 a7 A. F: U

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2016-8-29 08:52:37 | 只看该作者
这个程序是测试通过的 其中的地址就是 _c_int001 d3 ~8 F  i- B5 B6 z+ V& o& t

! w! D0 X: C) y
  1. /****************************************************************************// `1 E( S% [, ]
  2. /*                                                                          */8 k, a: E9 ^: B2 Q% f
  3. /*              BootMenu                                                    */: ?# R2 a% A$ x
  4. /*                                                                          */
    . l! N! ~4 S4 m
  5. /*              2014年11月07日                                              */
    1 G9 o$ P" Y; w" ~+ ]* |( \0 R8 w
  6. /*                                                                          */# I9 i6 ~" r+ N: }% g" ]8 U7 ?
  7. /****************************************************************************/# i* t( E5 R% ~9 A
  8. #include "uartStdio.h"
    # k4 {5 Z' K, m8 A" o/ h
  9. ( j' [  U" c$ z5 e' _- I
  10. /****************************************************************************/
    0 @: {- M0 K- `# u3 M: v
  11. /*                                                                          */
    1 J7 k2 P$ U1 U# {
  12. /*              宏定义                                                      */, R6 ?: m# V3 u: a! @5 ^# B6 y
  13. /*                                                                          */
    2 g: H8 H: K4 C" \! ~9 d+ o
  14. /****************************************************************************/
    ) j+ _5 [( w: Y7 H) c5 s
  15. 0 i  k2 u; J" s8 [- H+ ]( E% w; Q% v1 ]
  16. /****************************************************************************/8 X! a2 g2 z  G3 }
  17. /*                                                                          */
    + n- R" b' u" ]/ [
  18. /*              全局变量                                                    */
    & }4 |% |3 `, d* V0 X5 f5 |
  19. /*                                                                          */
    ) _$ v( T# o' y; j
  20. /****************************************************************************/: Z  b  {$ N3 e7 g
  21. unsigned int EntryPoint = 0xC0000000;
    " J  ~! U- O5 E
  22.   Q5 V2 N: H% Y' a7 J. m) ^
  23. /****************************************************************************/5 O1 G2 s7 T- ^
  24. /*                                                                          *// l9 m( o0 L7 b2 L- B
  25. /*              函数声明                                                    */
    4 I9 z3 s8 R* f& C, L' k5 K
  26. /*                                                                          */3 @- x' b& n, D* M/ {
  27. /****************************************************************************/+ n3 k4 j1 h7 P& {1 u9 i0 n2 p
  28. void (*AppEntry)();* @5 R5 j  n' c6 j, C2 T
  29. ' M$ f. @) m0 f( Q% r
  30. /****************************************************************************/
    - s, _) D  L9 @0 f/ f4 p
  31. /*                                                                          */
    ( S6 ~" W. P$ |1 \0 L1 l
  32. /*              主函数                                                      */
    1 B! v( V/ `7 q2 S& K
  33. /*                                                                          */
    ; Y6 O4 K0 n' y+ b/ b( y. e
  34. /****************************************************************************/
    , J( q0 D0 [' D9 ~8 [5 ~& Y$ ~
  35. int main(void)
    + \8 l1 v0 F$ K9 P6 N, j8 A
  36. {
    1 C  D( j# T; R/ D( I
  37.         UARTStdioInit();
    , y4 |6 Z/ z5 i, x

  38. # C/ z* v6 a/ z9 \
  39.         UARTprintf("\r\nTronlong DSP TMS320C6748 BootMenu\r\n\r\n");  Q7 r% E$ w: Y0 b

  40. 2 [* ~- R8 `7 y$ W( ?
  41.         UARTprintf("0.StarterWare LED Test\r\n");5 B. R2 u+ ?4 i% G, }+ i: \
  42.         UARTprintf("1.SYS/BIOS EasyEvm Test\r\n");$ D% P' n- a( {& }1 P$ A
  43.         UARTprintf("2.StarterWare USB OTG HOST Test\r\n");0 w; V! E# X3 l6 a* f
  44.         UARTprintf("3.DSP/BIOS USB HOST / USB OTG Test\r\n");
    : w$ b# X2 C" M2 O

  45. ) i( h! c2 F+ E
  46.         UARTprintf("\r\n");/ `* H! \  @& I+ v3 u

  47. & ~3 m! S- o# C7 y
  48.         unsigned char val, status = 1;, h) o8 N" K- T
  49. Choice:4 y. F! M7 p! }2 X
  50.         val = UARTGetNum();+ W. J: ~: R3 [& ?2 I1 u
  51.         UARTprintf("\r\n");
    ! F) H/ z* @9 L" ^2 S* N; A
  52. , Q$ u! T& i4 f6 Q  z
  53.         switch(val)
    + v, e9 B, @4 o. C# E8 @, t2 }
  54.         {
    . T. @7 c5 [1 W% }
  55.                 case 0: EntryPoint = 0xC1000000; break;
    3 T: k. E# a6 Z
  56.                 case 1: EntryPoint = 0xC0251FE0; break;
    3 J$ u' D1 L" s$ ]- T2 W4 i
  57.                 case 2: EntryPoint = 0xC2000000; break;6 `* P; n+ L- z) m  c- w7 A0 X
  58.                 case 3: EntryPoint = 0xC541DEE0; break;/ q. _( I5 b) s: k" ?+ h; A$ l
  59. * }# Q/ ^2 W; j7 H: B7 C1 @/ \+ v/ \
  60.                 default: UARTprintf("Please input a correct number.\n"); status = 0; goto Choice;$ U5 ?# a$ X( v1 i$ Q" N
  61.         }
    9 i* ^5 p  P  [  S# U
  62.        
    ! L' Q% S0 u" u/ p
  63.         if(status != 0)* p1 g7 y# P$ \) \. a& |5 k
  64.         {
    2 V( h5 H  h! C+ {  i9 N% Z: [
  65.                 UARTprintf("Starting Application ......\n\r\n");
    - V6 u# T7 p, ~& _7 W& T; L
  66. + p% A. @  s6 ^: x
  67.                 AppEntry = (void (*)(void))EntryPoint;
    * A  a9 U1 i5 r% G8 A/ J
  68.                 (*AppEntry)();
    9 e8 x! ]; j% j! b( u
  69.         }7 c5 Q: M! W# x0 _, L
  70. * t8 ~: A3 [; i/ s: c, M
  71.         return 0;
    2 a- J% ~( Y# c  S8 k  c
  72. }2 P; h6 |% n. ^4 R7 \% X
复制代码

8 F8 c  c; j6 ^$ P* ~* f  k, [& ?. o; d0 l
回复 支持 反对

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-1-31 05:05 , Processed in 0.041150 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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