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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
跳转到指定楼层
楼主
发表于 2016-8-27 09:37:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题背景:现有两个工程,第一个工程led1中包含一个asm文件和c文件,asm文件实现向led1.c程序入口点跳转,如附件中所示。第二个工程只有一个c文件。三个程序的入口点分配如附件所示。
) A6 n4 F( ~2 H2 D问题描述:在asm文件中跳转语句是“B _c_int00”,但我有两个c文件,也就有两个_c_int00,所以总是无法实现跳转(个人猜测是这个原因)。如何才能实现正常跳转?
! P: a5 O+ ?8 X. X6 l; K$ M+ i, V$ V补充:不能改变工程及文件结构
: E& T* m' _+ k) Z3 P9 E& V请各位大神答疑解惑,必感激不尽9 W- d: @; V3 e$ J

本帖子中包含更多资源

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

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

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2016-8-29 08:52:37 | 只看该作者
这个程序是测试通过的 其中的地址就是 _c_int00
4 f6 D: S2 o$ u' s% |) O7 G. e7 l5 Z: L! R* m& C6 w& R
  1. /****************************************************************************/
    9 F+ M! E1 ^+ w/ U3 N( e
  2. /*                                                                          */9 w( f0 e" `, r: e1 f; A7 w5 a) l
  3. /*              BootMenu                                                    */; S3 ?6 ~% ~* a# }) T" r
  4. /*                                                                          */
    . ]# N6 ^3 v5 n  Z4 p4 @% i, m
  5. /*              2014年11月07日                                              */' |- J" [  e1 j) v/ ?% s$ {9 W
  6. /*                                                                          */+ [. q5 K0 o, h+ I( R8 D
  7. /****************************************************************************/& k5 w7 i  }& D; H8 F, `
  8. #include "uartStdio.h"
    3 R$ d* v" b$ X: ^. K9 q
  9. , ]4 a% _( O4 }3 {8 G- ^
  10. /****************************************************************************/
    0 p' C* p( `; M/ [
  11. /*                                                                          */3 D+ _6 ~' r! }" B0 a8 j; O% E( L
  12. /*              宏定义                                                      */
    1 A+ w0 H: {) i6 Q; z
  13. /*                                                                          */( O5 {" R' t! g
  14. /****************************************************************************/. O2 @$ N* d( [- ]; o( ^
  15. ) Q5 z2 x8 f$ l2 i
  16. /****************************************************************************/
    8 T) @- t4 u; K# }. r9 P
  17. /*                                                                          */
    / j& O3 ?% a5 `& [) m
  18. /*              全局变量                                                    */  y( |8 N3 ^* U8 J; V) _! A- A& Z6 h
  19. /*                                                                          */
    " D/ p$ K3 \& J, r) Q5 a' {  G
  20. /****************************************************************************/" H8 _3 L9 z- z. h- W' J) f* l1 }
  21. unsigned int EntryPoint = 0xC0000000;
    ( L8 Z& U9 N/ g  m
  22. 9 Q0 O: h' o4 ?8 g# D( H# a, e
  23. /****************************************************************************/
    0 F3 G0 W( {9 ?. w7 C, E1 a% r
  24. /*                                                                          */
    , ?" \8 ]: m7 K1 @% J- D( z9 i
  25. /*              函数声明                                                    */
    7 R! m" v, c  s+ I) K1 F8 q
  26. /*                                                                          */
    # @6 I/ B; a# F$ Q4 D' Q$ I+ P
  27. /****************************************************************************/+ x! c2 |0 D8 J2 R2 u) T
  28. void (*AppEntry)();
      w, C% z+ W! B+ h( R) _

  29. 8 a, [$ f+ x+ g- Q$ c) r$ x
  30. /****************************************************************************/
    6 J; R$ `4 g+ n
  31. /*                                                                          *// i1 J9 N; ~# d* f
  32. /*              主函数                                                      */
    # U1 i* h2 K5 t' V# V
  33. /*                                                                          */7 x+ j6 y: l. C: n
  34. /****************************************************************************/8 Y. {) i7 T  D5 H6 M+ I
  35. int main(void): m) D; ^' F8 O# }. j
  36. {
    6 M/ M0 Y. d3 |% U- b1 {- L/ g
  37.         UARTStdioInit();
    1 ^1 n$ `: h1 H+ A; s
  38. : a" q) w4 N( H9 u
  39.         UARTprintf("\r\nTronlong DSP TMS320C6748 BootMenu\r\n\r\n");
    " J$ R3 ]9 L! e. c) V9 H

  40. , i' N' W$ V" P1 K
  41.         UARTprintf("0.StarterWare LED Test\r\n");
    7 v4 z/ w2 ]" [. T
  42.         UARTprintf("1.SYS/BIOS EasyEvm Test\r\n");
    + I( s- L$ C2 u8 V6 j% O; s% m) s  S
  43.         UARTprintf("2.StarterWare USB OTG HOST Test\r\n");. \$ C, {+ n& u4 A/ `
  44.         UARTprintf("3.DSP/BIOS USB HOST / USB OTG Test\r\n");
    ' [6 P2 a+ v4 G( K9 h& @/ a+ W5 B
  45. # Z, m& _& l1 U, l
  46.         UARTprintf("\r\n");
      E! P( [! b/ |, H
  47. 8 \2 J# {% q7 w! n  l" j
  48.         unsigned char val, status = 1;8 I- u  C. c+ W! p6 s, G
  49. Choice:% p$ ^! k& t, t$ x  O! E
  50.         val = UARTGetNum();: X  q3 a8 [- l2 V( ?$ i+ r
  51.         UARTprintf("\r\n");3 g+ W: D! P7 n" [& k0 a5 K

  52. 4 R0 N. \5 _. `+ ?, u
  53.         switch(val)+ [* b. e  t! R9 F% z
  54.         {2 a, ^- f8 i/ E! |8 ]$ H
  55.                 case 0: EntryPoint = 0xC1000000; break;
    7 J7 C% H2 l9 L  ~$ Z6 O7 w
  56.                 case 1: EntryPoint = 0xC0251FE0; break;
    # j2 n! S6 x7 I
  57.                 case 2: EntryPoint = 0xC2000000; break;
    ' c2 L( \0 I- b% a% `
  58.                 case 3: EntryPoint = 0xC541DEE0; break;
    5 O  B, G) e" Z( v% Y; b

  59. 7 N& C% A( s7 G- V; \
  60.                 default: UARTprintf("Please input a correct number.\n"); status = 0; goto Choice;/ j( D- g- @8 e) Z* c$ Y- U
  61.         }1 ~8 C$ T! x4 D
  62.         6 M2 M0 f1 E+ d3 Y0 q& X3 e* b
  63.         if(status != 0)
    9 L: A. c2 D4 ?9 }( d
  64.         {
    5 C; p  e# L' z2 d0 p
  65.                 UARTprintf("Starting Application ......\n\r\n");, P& d8 F* D) u! Y1 t# v  G% S) W2 E; _

  66. 9 {: _$ C5 @  O/ J8 B& [# {
  67.                 AppEntry = (void (*)(void))EntryPoint;
    ' @* a# {' K8 f; d* G
  68.                 (*AppEntry)();
    & \% M0 i" |" S7 v# q6 _8 @$ Y
  69.         }1 j& ?+ \9 E( H, I7 P

  70. " k& Q/ S  i5 ~  L
  71.         return 0;
    # E" \3 E1 @$ F8 w7 p
  72. }
    9 t+ t) m! }$ ~5 x
复制代码

2 E5 j5 n: Q$ h* R% ]& r) n6 e8 B% @" P5 C
回复 支持 反对

使用道具 举报

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
板凳
 楼主| 发表于 2016-9-4 20:48:58 | 只看该作者
您好,我试了一下这种方法,结果报错了
/ S0 B4 Q: M" Z" i( ]& k7 K, X3 \! S/ ^

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-16 14:45 , Processed in 0.037882 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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