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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
跳转到指定楼层
楼主
发表于 2016-8-27 09:37:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
问题背景:现有两个工程,第一个工程led1中包含一个asm文件和c文件,asm文件实现向led1.c程序入口点跳转,如附件中所示。第二个工程只有一个c文件。三个程序的入口点分配如附件所示。
) \% W. ]% ~8 C' S问题描述:在asm文件中跳转语句是“B _c_int00”,但我有两个c文件,也就有两个_c_int00,所以总是无法实现跳转(个人猜测是这个原因)。如何才能实现正常跳转?
2 F' Q9 ^, v  T  E7 r, B3 Y% k补充:不能改变工程及文件结构
$ C  e9 r: @6 ^! }( m9 e% `! }, C/ @请各位大神答疑解惑,必感激不尽
) Z3 [$ _# Q+ M

本帖子中包含更多资源

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

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

使用道具 举报

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
板凳
 楼主| 发表于 2016-9-4 20:48:58 | 只看该作者
您好,我试了一下这种方法,结果报错了
8 ?/ T1 P  |% B9 g
4 X, V5 \" \( S7 M# r, q; a9 y

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2016-8-29 08:52:37 | 只看该作者
这个程序是测试通过的 其中的地址就是 _c_int00, v) b2 d  Y+ S
; D. u5 E8 z1 Z# _
  1. /****************************************************************************/! K5 x+ I* h" m( h9 w8 E
  2. /*                                                                          */9 c2 i9 Z) `" c* k+ X( J  t
  3. /*              BootMenu                                                    */; s0 N* B4 `6 N7 s
  4. /*                                                                          */
    ! A6 j  f# g% l' w
  5. /*              2014年11月07日                                              */
    6 A' V$ \2 c3 R8 u$ [* b
  6. /*                                                                          */
    6 a% f8 Y6 W7 S1 ~9 v  y
  7. /****************************************************************************/0 F0 m: s# n" j5 E" z
  8. #include "uartStdio.h"  K0 ~$ W. [' \" x5 C5 v7 Y% v; E
  9. 6 V- R; {% q5 y% a5 ~/ H( a; E
  10. /****************************************************************************/
    8 v7 f2 ~3 _! Y8 ^: T8 \1 |* i; S
  11. /*                                                                          */
    % U  {" E+ F2 \( B3 q+ v, b' M
  12. /*              宏定义                                                      */. B5 V3 t9 S# _
  13. /*                                                                          */
    ; R, @2 G/ B! N7 O3 G! u
  14. /****************************************************************************/
    ( ~; R6 ~4 A# ^7 a+ b

  15. , Y! H8 o1 R8 ~5 R8 b' e- e: z5 u
  16. /****************************************************************************// r1 }8 c7 L  e* e
  17. /*                                                                          */; A1 r; M  h5 B
  18. /*              全局变量                                                    */
      f& W9 v! A" B: o5 U: p0 O
  19. /*                                                                          */1 G& |2 e8 O' A! ?7 p' e% e+ f
  20. /****************************************************************************/
    4 C% }! n/ l% q2 p7 W8 m' S
  21. unsigned int EntryPoint = 0xC0000000;) T+ A" c# W# D2 }3 Z* |# n
  22. " o0 b3 x8 R- w4 O" s' |9 u5 i
  23. /****************************************************************************/; P# q% Y1 j1 O# l
  24. /*                                                                          */
    6 O1 G- D- @( n' M
  25. /*              函数声明                                                    */
    * |2 |9 m3 l3 k: r. a. C
  26. /*                                                                          */$ h3 p  f2 T! x% l& Q
  27. /****************************************************************************/5 g# M! Z0 W5 K) E% G/ c; E# G
  28. void (*AppEntry)();. a$ v# L1 A, e5 n
  29. 1 [5 j$ [6 N. G& P8 w
  30. /****************************************************************************/6 C' T4 p' C5 A+ e  w
  31. /*                                                                          */
    9 r8 d% _$ N+ r  N, O" m5 `& t
  32. /*              主函数                                                      */4 x. ^1 c6 F+ z  y* y2 N. \8 y
  33. /*                                                                          */
      D/ y( v: ]: o: G' d
  34. /****************************************************************************/
    8 M3 d% J0 e+ L! P
  35. int main(void)! b# Y2 @: [7 F7 c) f5 U3 Q
  36. {
    & y/ {5 p, o% ]) `* N4 d
  37.         UARTStdioInit();  G; G1 U6 }: L  f& F) j

  38.   J4 Z9 K/ t0 c2 E% T( X+ D
  39.         UARTprintf("\r\nTronlong DSP TMS320C6748 BootMenu\r\n\r\n");
    ) T: B- @+ ?: U6 j/ P( t* f

  40. 4 ^- b% Y$ ~9 e/ G, D: B" l
  41.         UARTprintf("0.StarterWare LED Test\r\n");* Z) P& R! A. d5 G& A
  42.         UARTprintf("1.SYS/BIOS EasyEvm Test\r\n");1 f3 }% E# C+ O  C& {
  43.         UARTprintf("2.StarterWare USB OTG HOST Test\r\n");# X0 ]+ ?7 O- _
  44.         UARTprintf("3.DSP/BIOS USB HOST / USB OTG Test\r\n");6 Z& Q. c" x" C

  45. 1 f7 q& y; J3 V; O( L3 t& }
  46.         UARTprintf("\r\n");
    3 ^/ E# @) F7 f

  47. $ F! K, q$ m' X6 i$ Z9 H. J2 P) E" _
  48.         unsigned char val, status = 1;
    " U7 Y4 B; F; R+ K2 N( c# z* x
  49. Choice:! I5 E2 [$ J$ R- p+ S8 n
  50.         val = UARTGetNum();. R5 ]  F: o# x" m& N
  51.         UARTprintf("\r\n");
    0 y3 Y; ], O- W3 X9 u, l& {: A5 i
  52.   Q: X' [. C9 O: H0 |) I$ N7 a/ D# u
  53.         switch(val)/ Z1 Y1 N, l  y" v4 ~2 [  n. I
  54.         {; I5 l. T) M" Z4 h
  55.                 case 0: EntryPoint = 0xC1000000; break;7 v6 U. B" h0 Z9 S
  56.                 case 1: EntryPoint = 0xC0251FE0; break;
    / E5 [; \9 F# T  \5 Y
  57.                 case 2: EntryPoint = 0xC2000000; break;
    * C6 S1 a. j9 d: n1 O4 P  e9 z
  58.                 case 3: EntryPoint = 0xC541DEE0; break;, R* E3 Q1 w$ R$ ?. E( d) d' y

  59. , y0 y; g2 N8 e: _
  60.                 default: UARTprintf("Please input a correct number.\n"); status = 0; goto Choice;% K) ]! @7 P% W& [  I" w
  61.         }
    : \' w6 x  y: ]
  62.         ( |8 f3 f% ]$ V' {6 E& y
  63.         if(status != 0)
    8 }- `1 C$ A) ^4 ^5 }6 C. T1 U
  64.         {
    * ^( l* W4 Q6 m, Z3 m
  65.                 UARTprintf("Starting Application ......\n\r\n");* C( e4 T  N5 P6 [) C/ q
  66. 9 s9 P" o0 V2 M  N
  67.                 AppEntry = (void (*)(void))EntryPoint;
    & K. g+ _3 _# M0 d
  68.                 (*AppEntry)();: X& K5 }; {& L
  69.         }
    & y1 e9 @2 v* J  M8 M  r

  70. * R+ N. G; u& `7 K9 C
  71.         return 0;  E3 l! V9 G" t& B
  72. }
    7 B6 o- ?" d. c( F1 w! w' ^) o9 ~
复制代码

1 m2 I1 u5 W2 u( J+ a) d2 c
+ A  _1 y' d6 b8 c* B6 N) v% L
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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