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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
跳转到指定楼层
楼主
发表于 2016-8-27 09:37:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题背景:现有两个工程,第一个工程led1中包含一个asm文件和c文件,asm文件实现向led1.c程序入口点跳转,如附件中所示。第二个工程只有一个c文件。三个程序的入口点分配如附件所示。. E5 I% \2 W& Z: P, j7 ]) s; s8 K
问题描述:在asm文件中跳转语句是“B _c_int00”,但我有两个c文件,也就有两个_c_int00,所以总是无法实现跳转(个人猜测是这个原因)。如何才能实现正常跳转?& T: c$ i% K6 Q% b7 q
补充:不能改变工程及文件结构
+ m& K7 e4 |4 a' R; o: K请各位大神答疑解惑,必感激不尽
, \. F3 M: \4 v& @9 V) w

本帖子中包含更多资源

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

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

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2016-8-29 08:52:37 | 只看该作者
这个程序是测试通过的 其中的地址就是 _c_int00( w& y& g- m; a3 R

9 Z: h2 F6 Z& k/ I
  1. /****************************************************************************/
    & T: ?& L8 ^2 v; D# f) u5 ]
  2. /*                                                                          */1 ?/ n2 W, J+ g. D
  3. /*              BootMenu                                                    */
    4 M1 q6 R% S. n6 J
  4. /*                                                                          */5 Y9 K# ?  i2 z
  5. /*              2014年11月07日                                              */
    * B" G' Z0 O4 K
  6. /*                                                                          */
    7 W' h0 M2 g! ?
  7. /****************************************************************************/
    0 U+ o0 P: K' P9 [% |
  8. #include "uartStdio.h"
    6 x5 `1 A; X4 G5 u

  9. * I* e) J) X9 e- C" ?
  10. /****************************************************************************/
    + d: {' w* o( J0 Z$ a$ V: T
  11. /*                                                                          */
    % S. i7 \$ H3 ]. P5 e& Y* T4 O
  12. /*              宏定义                                                      */
    7 h/ q: G. j$ `
  13. /*                                                                          */
    # j9 j) A, A6 b5 r9 C8 \! c
  14. /****************************************************************************/0 ]! D1 Z8 y+ S

  15. * ]! o2 n+ I- H+ ^3 k' }
  16. /****************************************************************************/
    " x( V0 z" [9 [
  17. /*                                                                          */
    + q- I/ g. t, o: o; z5 R
  18. /*              全局变量                                                    */" p3 [, Q: W- }( L9 c2 c
  19. /*                                                                          */$ e1 a+ K/ @' u0 a9 j+ ~
  20. /****************************************************************************/; x% Y4 e8 q* U" M
  21. unsigned int EntryPoint = 0xC0000000;# X, L* \+ S! @2 m- y+ \: z
  22. , b8 u8 e( Q9 x. |( {8 l% g. b/ q
  23. /****************************************************************************/
    ! k" `6 x& F/ P2 ?! T
  24. /*                                                                          */8 Q3 p3 y. _- z6 s- L$ }- H' ?/ Y
  25. /*              函数声明                                                    */
    9 ~8 s! ~" ?/ B3 I3 _
  26. /*                                                                          */* g- L7 o% H; B" q
  27. /****************************************************************************/0 t3 n, Y9 N1 {. b) O
  28. void (*AppEntry)();
    ' e* J8 U6 n) M0 T! F

  29. 3 v, \- `" M( A" |2 p7 }5 B
  30. /****************************************************************************/
    * b6 ]9 [" g& b* n. b' s! [
  31. /*                                                                          */
    1 j8 V& _2 H3 L) _- f9 w
  32. /*              主函数                                                      */% M  n& @7 v4 r& {8 ^
  33. /*                                                                          */1 `/ G# G; b0 x* s
  34. /****************************************************************************/; @! i, x6 J9 e# m: t
  35. int main(void)
    # d: H, Z5 Y' k% m
  36. {: n) q& s, Z8 w4 v: p& I& t1 k. X6 l
  37.         UARTStdioInit();
    % D3 M5 ?6 V! `. c) a4 R

  38. : k) o. P" r) F: c0 h/ j* Y
  39.         UARTprintf("\r\nTronlong DSP TMS320C6748 BootMenu\r\n\r\n");4 e* U  H% t) A' ]6 K5 l9 E

  40. ; A* R4 l" Q5 h2 @7 x+ o' ^* X* l1 y
  41.         UARTprintf("0.StarterWare LED Test\r\n");& ^6 Y3 Q3 q" e: @( J+ f
  42.         UARTprintf("1.SYS/BIOS EasyEvm Test\r\n");
    8 t( X6 F( i  \$ s
  43.         UARTprintf("2.StarterWare USB OTG HOST Test\r\n");0 V2 x9 ?$ Q0 {% [$ ^" {* b: `
  44.         UARTprintf("3.DSP/BIOS USB HOST / USB OTG Test\r\n");
    : J; n' y) G0 M5 u+ x
  45. $ o. U) u5 b2 d( c8 I
  46.         UARTprintf("\r\n");1 F5 C+ g+ M9 {; P/ [8 W
  47. 5 V9 V- Z! G5 V/ N
  48.         unsigned char val, status = 1;/ X: z8 J( g. W! Z2 s
  49. Choice:
    ; x/ a8 ~. I4 h+ o9 _& G
  50.         val = UARTGetNum();
    5 g0 z  C6 Q( t/ C9 v5 E
  51.         UARTprintf("\r\n");' O7 p6 r( r: m! Z& s
  52. ( J( e8 f+ W0 U2 d
  53.         switch(val)
    $ W9 W, P5 E; l, |8 d; @
  54.         {
    : y( J% x$ b8 L/ n+ Y$ x7 v
  55.                 case 0: EntryPoint = 0xC1000000; break;. |- }' D! E6 K9 _3 q0 }2 H
  56.                 case 1: EntryPoint = 0xC0251FE0; break;
    1 ^9 k: P+ i7 |: L1 o
  57.                 case 2: EntryPoint = 0xC2000000; break;  E2 r' l, k0 @8 c! M* T, q3 o
  58.                 case 3: EntryPoint = 0xC541DEE0; break;5 R" l# Q% o1 v! K: n

  59. ( D* Z7 I4 n5 p; p6 H  L
  60.                 default: UARTprintf("Please input a correct number.\n"); status = 0; goto Choice;
    ! k7 c9 g% n8 c; ^9 A, \
  61.         }5 R7 ^0 j: ]2 F- K: J0 {
  62.        
    8 q$ h' Z# C. Q% I4 j6 }  Z' r% \$ f
  63.         if(status != 0)
    ' o6 x2 w: D4 a: k& X+ }
  64.         {( ^# E5 p; K0 I1 O- P# R/ c& [6 R* N
  65.                 UARTprintf("Starting Application ......\n\r\n");( m5 L; \) t5 L" }, D
  66. * f6 N  t: v2 H
  67.                 AppEntry = (void (*)(void))EntryPoint;8 I2 @+ z( A- T" R* d
  68.                 (*AppEntry)();' G& B* a8 z. Q! a8 f/ w+ L
  69.         }+ \+ g, {+ P' c

  70. % x; n& C0 @( p
  71.         return 0;
    , \" ~" I3 q1 s5 h3 k
  72. }: {* i5 Q9 A) O9 u, j* |; ~
复制代码
3 ]: R6 M! ^9 {" B) L

8 g( g* q. S$ x) ~1 }0 i- x* }
回复 支持 反对

使用道具 举报

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
板凳
 楼主| 发表于 2016-9-4 20:48:58 | 只看该作者
您好,我试了一下这种方法,结果报错了
3 R$ s2 J: x5 I) t5 r! y: T% Y; q) K0 d

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-31 03:34 , Processed in 0.065951 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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