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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
跳转到指定楼层
楼主
发表于 2016-8-27 09:37:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题背景:现有两个工程,第一个工程led1中包含一个asm文件和c文件,asm文件实现向led1.c程序入口点跳转,如附件中所示。第二个工程只有一个c文件。三个程序的入口点分配如附件所示。. _) f5 J! ]( t5 Z! k" H6 ~2 @
问题描述:在asm文件中跳转语句是“B _c_int00”,但我有两个c文件,也就有两个_c_int00,所以总是无法实现跳转(个人猜测是这个原因)。如何才能实现正常跳转?6 K1 a, ]$ r3 g* L& Q) l
补充:不能改变工程及文件结构
* f8 D5 E8 s8 \4 V% t) W5 X请各位大神答疑解惑,必感激不尽
+ n: I9 ^8 T. R9 R

本帖子中包含更多资源

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

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

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2016-8-29 08:52:37 | 只看该作者
这个程序是测试通过的 其中的地址就是 _c_int00+ `6 R4 j- s& `/ N

  E$ u: ^/ H* E
  1. /****************************************************************************/
    7 l. S! M  |8 h3 D0 M# m
  2. /*                                                                          */+ [" i& {! m+ l+ m4 q
  3. /*              BootMenu                                                    */
    9 F, B6 v+ K, ?4 s# ?
  4. /*                                                                          */
    ' p9 |( K, I8 |1 F: x4 d
  5. /*              2014年11月07日                                              */5 d& [6 F- {9 y$ q) D
  6. /*                                                                          */
    2 D6 {  ]/ l% S3 N* B( ]
  7. /****************************************************************************/2 T$ m2 o/ L. x& F0 ]
  8. #include "uartStdio.h", y: T/ X% x' Q) T& g! f

  9. - H: O- I5 s0 T$ w) y2 e
  10. /****************************************************************************/5 p2 a9 M& |0 t, ?# s
  11. /*                                                                          */
    3 j% C* ^& M% |( W  A% O& f( I
  12. /*              宏定义                                                      */" k  c  \% S0 q% ~; c5 C( L+ a
  13. /*                                                                          */; |3 w3 ]. e5 G
  14. /****************************************************************************/& j* m9 z% v; V$ Y4 \
  15. % R) T3 t% \; U) [2 ^3 B0 \! a$ n% ]
  16. /****************************************************************************/
    & a! W/ Z$ H% `( h% p
  17. /*                                                                          */" ], v& `9 ?% x: p! n% E
  18. /*              全局变量                                                    */# w2 F* F) b! c) A0 C
  19. /*                                                                          */  @5 v6 C- h* N4 i9 q) v
  20. /****************************************************************************/9 W. {3 A! Q- u
  21. unsigned int EntryPoint = 0xC0000000;" \. d/ e  S5 s4 D! U+ [( P- @
  22. 9 C% Y1 p% j% i9 k! i5 [
  23. /****************************************************************************/' Q9 {& k* w9 d* a  f
  24. /*                                                                          */, u% U8 t4 N2 f0 V! `
  25. /*              函数声明                                                    */5 R: r3 P6 Q1 `8 A6 C. Y
  26. /*                                                                          */
    * H% G% |0 Y8 O8 S0 X3 D4 i/ t9 ?
  27. /****************************************************************************/
    1 P& @) d8 B- ?* A9 d4 O
  28. void (*AppEntry)();
    ) `, M7 z. |7 B
  29. ' N1 L) k7 N' w  N0 \' H0 S: \
  30. /****************************************************************************/2 k/ x/ ]9 k- C
  31. /*                                                                          */
    7 j6 S7 F5 f" G4 U; X0 ?; U, p9 N
  32. /*              主函数                                                      */( G! d! _( t& V3 M3 T
  33. /*                                                                          */
    * L- @) }$ @2 B7 X
  34. /****************************************************************************/( @3 u  N! T- E# m" U8 D
  35. int main(void)5 Q$ {1 A$ T0 f; u2 R
  36. {
    / f# x2 k3 Z" y6 G
  37.         UARTStdioInit();5 T3 u; X( N$ r
  38. 6 |. |7 q7 v& `- Q, d& e' n
  39.         UARTprintf("\r\nTronlong DSP TMS320C6748 BootMenu\r\n\r\n");
    6 o: R( c8 b. w1 T/ S1 O4 Z

  40. " t2 J( b5 \+ t" i
  41.         UARTprintf("0.StarterWare LED Test\r\n");
    : g& j2 k' b9 x! B7 `/ Z# Z
  42.         UARTprintf("1.SYS/BIOS EasyEvm Test\r\n");
    9 a9 m- X/ M& B0 u' }$ c8 M
  43.         UARTprintf("2.StarterWare USB OTG HOST Test\r\n");5 N7 S4 D. R9 W+ \2 q" D
  44.         UARTprintf("3.DSP/BIOS USB HOST / USB OTG Test\r\n");' ^5 m1 J# }, j  l) C' K
  45. & Q* Y+ _  ?3 V; X% a: v: ?
  46.         UARTprintf("\r\n");4 A% a4 i4 f3 Q

  47. # R* T* b$ e2 |+ N% [2 Y& Y& U
  48.         unsigned char val, status = 1;6 k7 q) }: f: n5 s! p9 \7 ]7 J0 {
  49. Choice:
    5 z4 P1 L; y  _- J+ ^8 b: D0 J
  50.         val = UARTGetNum();
    . n1 l- J* C- z6 ]* ^. t& ^
  51.         UARTprintf("\r\n");- ^6 X! s  c! I

  52. 9 @1 ?. c) I1 J
  53.         switch(val)
    ( v3 _: |( w+ L  r& F
  54.         {9 t6 i4 C4 ]/ W( _
  55.                 case 0: EntryPoint = 0xC1000000; break;
    ( j4 y) D( Z, Y2 U, a: k' H
  56.                 case 1: EntryPoint = 0xC0251FE0; break;
    4 H2 q. Z! l" b8 Q& R) I* z  e0 d, C7 b
  57.                 case 2: EntryPoint = 0xC2000000; break;: Z3 f, M% x6 X% K9 K5 e, Z
  58.                 case 3: EntryPoint = 0xC541DEE0; break;% ^% c  e5 V% g/ H. B+ L% e
  59. & m# W' L1 `: Q. n. `0 h
  60.                 default: UARTprintf("Please input a correct number.\n"); status = 0; goto Choice;. ]" Q# M. k8 D% N
  61.         }/ l, D+ m/ p6 L0 h& x, o* P
  62.         ; v- q9 H$ w% u6 o/ ~$ X
  63.         if(status != 0)
    $ B+ @2 F9 c" E2 _: B$ j
  64.         {/ _( K! D" U2 H; |7 @+ B6 c0 t
  65.                 UARTprintf("Starting Application ......\n\r\n");% ?) p+ A, d  j, U
  66. 6 G4 E! F* I" I* o9 ]2 i& n7 ]
  67.                 AppEntry = (void (*)(void))EntryPoint;# ^2 b& Y, C' |# v- H4 p6 M
  68.                 (*AppEntry)();
    # G+ Z/ m, ~  d+ d
  69.         }! f- A! |( g- r4 g
  70. 2 b' o" o7 C3 Z# ^- }7 M
  71.         return 0;) w8 W' s. r) }  s' |7 O
  72. }
    . o) X0 b% I. `% t( w& ^
复制代码

0 n- j" E' ]1 {" U! A8 d* ?! X! d
9 o9 O. k9 Q2 ~) J1 O
回复 支持 反对

使用道具 举报

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
板凳
 楼主| 发表于 2016-9-4 20:48:58 | 只看该作者
您好,我试了一下这种方法,结果报错了
- m) p+ Y$ d+ [: q! V6 x4 u% Z4 d$ }. A+ C

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-16 07:15 , Processed in 0.050375 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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