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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
跳转到指定楼层
楼主
发表于 2016-8-27 09:37:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
问题背景:现有两个工程,第一个工程led1中包含一个asm文件和c文件,asm文件实现向led1.c程序入口点跳转,如附件中所示。第二个工程只有一个c文件。三个程序的入口点分配如附件所示。
1 o5 I1 r0 E; q  a) @6 X+ B问题描述:在asm文件中跳转语句是“B _c_int00”,但我有两个c文件,也就有两个_c_int00,所以总是无法实现跳转(个人猜测是这个原因)。如何才能实现正常跳转?
3 Z& `9 N, V# p6 W- j" i0 `补充:不能改变工程及文件结构
- B; G6 v0 j! B5 v请各位大神答疑解惑,必感激不尽  _5 R! b9 G/ z; f' q% B- e

本帖子中包含更多资源

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

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

使用道具 举报

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
板凳
 楼主| 发表于 2016-9-4 20:48:58 | 只看该作者
您好,我试了一下这种方法,结果报错了# z' n( h% r; {7 d0 r
5 e# ]( N! b6 T, |( T

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2016-8-29 08:52:37 | 只看该作者
这个程序是测试通过的 其中的地址就是 _c_int004 i( w/ X' t$ D2 Y4 M
: y: d" W8 r9 p1 K$ H4 a  i
  1. /****************************************************************************/% i  Q- Z6 K; f- Q6 P3 W# K
  2. /*                                                                          */
    : k: |9 E! ~$ p3 o: P6 a: Q
  3. /*              BootMenu                                                    */
    * ^0 T7 _4 X; Q" a% h
  4. /*                                                                          */$ L7 n, I2 A* s8 q; D
  5. /*              2014年11月07日                                              */
    + Z- E# u! G% n8 U" S
  6. /*                                                                          */) V3 A9 k' x( Q0 T# d# J0 O
  7. /****************************************************************************/
    9 V. M, t. w& V) b% ]$ g0 q
  8. #include "uartStdio.h"
    " b: N+ {* t" a
  9. 7 U9 D; r/ R- z7 `5 m
  10. /****************************************************************************/& C2 m. k: P7 O/ b6 ]( ^0 T
  11. /*                                                                          */! f- J$ \2 \$ f1 u% {6 G# p
  12. /*              宏定义                                                      */' g4 J- }4 ^0 i0 z
  13. /*                                                                          */5 `0 T% z' c& ?% j# A+ t/ a. g% m
  14. /****************************************************************************/" t- m' `" d9 j9 R& w( n

  15. 2 W+ c2 l- g6 V. y; s2 k; x& V
  16. /****************************************************************************/
    ( M3 A  x8 ?$ D, S
  17. /*                                                                          */7 m4 v' S( ?' E
  18. /*              全局变量                                                    */
    ( F1 {1 i- [3 M2 f7 Z9 g0 {; y% D4 a. [
  19. /*                                                                          */
    ( P3 w- R! O/ `. a4 W
  20. /****************************************************************************/
    7 ^8 X$ m0 {% U# t  Z" M, r- i) R
  21. unsigned int EntryPoint = 0xC0000000;' ]  f* q9 ?) T- M, O7 ^6 V
  22. ; c" y. K+ R* c8 y; n
  23. /****************************************************************************/- l1 W- M+ V0 b( b6 E4 w8 r
  24. /*                                                                          */
    ) t' t! F+ s2 }  L9 }: i
  25. /*              函数声明                                                    *// F# N  q5 S0 s7 d
  26. /*                                                                          */% o) d9 R- S3 r/ U5 h
  27. /****************************************************************************/# n2 {" p) c6 a0 P
  28. void (*AppEntry)();
    ) B- K5 t/ |4 ?6 o, ^; S; {

  29. 1 s5 w+ P" _, C8 d" \! M% L# T  @1 M
  30. /****************************************************************************/
    1 N% Q* Q6 J% E, f5 A
  31. /*                                                                          */
    % i. K9 K1 E2 o
  32. /*              主函数                                                      */
    8 h* O6 X; X1 o  {2 Q( U) o  w5 }
  33. /*                                                                          */
    9 G/ w% \- B  E5 j1 b
  34. /****************************************************************************/
    7 s1 ]; c/ g; u3 {! u- w
  35. int main(void)
    . Q. D4 o4 f9 z8 @: Z- ^' c/ y, D
  36. {' ~3 M. C  l: }* a
  37.         UARTStdioInit();
    8 w! `1 q& ^+ O: v
  38. & m( y6 x) G! |$ V! s
  39.         UARTprintf("\r\nTronlong DSP TMS320C6748 BootMenu\r\n\r\n");
    7 v1 t9 G& @" |- L$ ^# `' ^. E2 O* Z
  40. % C2 d+ v& p6 z  y) U; B5 ?, v
  41.         UARTprintf("0.StarterWare LED Test\r\n");* h& n& Z8 g  t8 ~; d0 _2 X/ C
  42.         UARTprintf("1.SYS/BIOS EasyEvm Test\r\n");
    $ R0 g7 a- m) t3 ?
  43.         UARTprintf("2.StarterWare USB OTG HOST Test\r\n");% L0 s& [8 i: j! h. I0 t- Z" i
  44.         UARTprintf("3.DSP/BIOS USB HOST / USB OTG Test\r\n");. F0 t% b1 `  n5 I1 U% j7 s# F% y
  45. 5 i4 `( w  I+ S2 n4 S) K' }
  46.         UARTprintf("\r\n");
    . i3 g$ `$ q+ c1 Q  e) R" J# F

  47. * H7 W- C- w- |7 {7 n, q
  48.         unsigned char val, status = 1;
    4 \  S2 k9 o! F! r8 P( u
  49. Choice:
    ) m4 R9 S, t+ i) t' l- D. |% P
  50.         val = UARTGetNum();
    ( H, i5 E6 ]6 P6 z( ^
  51.         UARTprintf("\r\n");
    9 X" s' Z1 t0 X6 L: Y) `
  52. * j/ R9 M# n) @& q0 T& T
  53.         switch(val)/ C# w# \" P% y3 L4 t$ L2 V( L
  54.         {
    $ y$ z! w" s8 e6 l
  55.                 case 0: EntryPoint = 0xC1000000; break;& u7 [, n3 Q( o- Q# w
  56.                 case 1: EntryPoint = 0xC0251FE0; break;
    6 E  P  R# k  `% \
  57.                 case 2: EntryPoint = 0xC2000000; break;
    & v! u9 E  ?4 a$ z* r- `$ t3 r
  58.                 case 3: EntryPoint = 0xC541DEE0; break;
    0 d0 [  ]9 ^1 A5 d/ \

  59. 8 [- V0 k" j% {& H  j
  60.                 default: UARTprintf("Please input a correct number.\n"); status = 0; goto Choice;0 Z6 D! i* o3 `! u; N
  61.         }# @! F. }# d) W$ u) y# p
  62.        
    . _) r+ f- I; p
  63.         if(status != 0). S  ?* K' b5 G" y
  64.         {
    ) t+ C% E& n' t: b; [+ F6 A& E
  65.                 UARTprintf("Starting Application ......\n\r\n");& C' v. Q% o/ q# G

  66. . G8 {9 ]. W7 y1 B* e$ y% ?- p
  67.                 AppEntry = (void (*)(void))EntryPoint;
    ( o6 `+ e8 ^0 F6 U. I7 d7 w# l2 o
  68.                 (*AppEntry)();
    5 \  y9 m* a3 N) `$ p8 }% H
  69.         }3 b* l$ K/ A( Z: N/ X
  70. 7 g6 I4 t: m% S! l" M" R7 X
  71.         return 0;
    ( d' X* C  ], j
  72. }
    : t4 X: P- ~% X+ H8 u! @- S
复制代码
0 U& A- v6 b/ x/ S( t8 V9 `
5 L9 k& v5 k6 @; u0 c, b2 z3 j
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-17 13:26 , Processed in 0.039871 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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