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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
跳转到指定楼层
楼主
发表于 2016-8-27 09:37:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题背景:现有两个工程,第一个工程led1中包含一个asm文件和c文件,asm文件实现向led1.c程序入口点跳转,如附件中所示。第二个工程只有一个c文件。三个程序的入口点分配如附件所示。
% D0 B7 S* p8 y问题描述:在asm文件中跳转语句是“B _c_int00”,但我有两个c文件,也就有两个_c_int00,所以总是无法实现跳转(个人猜测是这个原因)。如何才能实现正常跳转?+ u+ s' J( C. F% J
补充:不能改变工程及文件结构
9 I# I. S5 H5 a$ z! k% y6 E请各位大神答疑解惑,必感激不尽0 R, R) i3 ^5 ]5 B' \4 t

本帖子中包含更多资源

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

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

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2016-8-29 08:52:37 | 只看该作者
这个程序是测试通过的 其中的地址就是 _c_int00+ I1 H. E7 `/ V# ^

6 L2 A$ T3 T* I' R
  1. /****************************************************************************/
    5 }& \$ C3 ~3 `8 D, B
  2. /*                                                                          */
    ' i, e+ P" h: [2 y8 y0 R$ J
  3. /*              BootMenu                                                    */) U+ ]8 f0 `1 |4 e
  4. /*                                                                          */; B/ i8 F! V2 C: L+ q8 e
  5. /*              2014年11月07日                                              */
    , K4 D$ z8 ]8 R5 I) a3 _
  6. /*                                                                          */
    - z/ ~$ r  q: n0 }/ S) o/ X
  7. /****************************************************************************/
    8 q/ r" L9 p0 {  v8 S
  8. #include "uartStdio.h"
    2 {8 }4 ?5 u$ i' e6 g3 \# p0 F

  9. , k* N' t6 A, ]2 c% Y3 d6 D
  10. /****************************************************************************/2 v( t& n$ z# @$ q% ~
  11. /*                                                                          */
    % U6 |/ U# ]5 x6 V" d4 I! V
  12. /*              宏定义                                                      */
    6 t- ?& J* T) {( L- R6 _
  13. /*                                                                          */7 r0 a3 r3 P; h: R; g* Q, z
  14. /****************************************************************************/) Z) @9 D$ _" r. v

  15. 1 j, z* V! `; B  L
  16. /****************************************************************************/
    4 p  t5 B; A# F5 Z/ w4 _. g" S
  17. /*                                                                          */
    : x7 j, O# M, \  X. l) R! ]
  18. /*              全局变量                                                    */
    5 C. V% @  p( T7 U
  19. /*                                                                          */
    , D' X" ~7 |# [0 k% A/ o/ y
  20. /****************************************************************************/
    8 h7 s$ O- ]* S, b4 p
  21. unsigned int EntryPoint = 0xC0000000;
    & W; r* f/ p9 Z5 z9 n& _

  22. % O) J0 I- @- O
  23. /****************************************************************************/1 \" z. r3 ^2 a! |6 W, L1 `
  24. /*                                                                          */! e7 s1 L0 @. t" s" z9 n
  25. /*              函数声明                                                    */
    8 G/ R% [# F; K
  26. /*                                                                          */
    4 F0 {9 y$ j3 Q6 B. g" M) f! Y
  27. /****************************************************************************/
    2 E% Q$ ]9 O8 r
  28. void (*AppEntry)();
    : Z% R, ^* x; _: ^* `5 F, |& T5 x3 ?

  29. 4 j1 {2 r- e9 A2 g
  30. /****************************************************************************/
    - c3 S% I; \7 W) V; {0 Z' k2 o
  31. /*                                                                          */
    ( x4 h' Q8 a9 W9 S: w& M/ @) M. N
  32. /*              主函数                                                      */
    2 G* ?7 a0 ^% k
  33. /*                                                                          */
    % n7 E# c- k1 U& X. N
  34. /****************************************************************************/
    ' }( a/ o: P( u/ L. _7 D# L: F1 F
  35. int main(void)/ H/ l8 w2 O9 k$ W$ T  j9 g
  36. {
    2 u( W, F& o/ U8 O
  37.         UARTStdioInit();2 ]0 Y* ?% w9 ?3 T$ z9 d* A
  38. % z( ^( K9 t7 d4 h0 p1 p2 T9 P
  39.         UARTprintf("\r\nTronlong DSP TMS320C6748 BootMenu\r\n\r\n");
    . v; R; n( r" R7 w7 T$ C0 N

  40. 3 O7 \$ Y3 F( |- A/ r$ H- p. j# a
  41.         UARTprintf("0.StarterWare LED Test\r\n");
    $ v- r- S( `4 d& N: R
  42.         UARTprintf("1.SYS/BIOS EasyEvm Test\r\n");7 |1 }0 V4 }7 `2 X
  43.         UARTprintf("2.StarterWare USB OTG HOST Test\r\n");
    " c: K: y, L# K+ G& B
  44.         UARTprintf("3.DSP/BIOS USB HOST / USB OTG Test\r\n");
    1 G7 }5 a3 P% j# \' @9 `8 I) H
  45. + ]8 y; R8 \8 N
  46.         UARTprintf("\r\n");
    * p7 O; l- O+ ?
  47. & r- h8 D2 D# V+ w8 _5 C' r) _
  48.         unsigned char val, status = 1;
    ' s' ^( b& z# F2 s0 W8 G
  49. Choice:
    - O# z8 f. ]! A3 p) ?$ [- c
  50.         val = UARTGetNum();$ R3 s* r- o' R5 _' u+ q9 i* Y! v8 U
  51.         UARTprintf("\r\n");4 G# E4 ]* ~0 o2 k
  52. 3 a/ i, M  {; V
  53.         switch(val)7 L4 I' e  a: k3 y  I& N; U5 T' b* d
  54.         {( t/ a9 _+ O! e7 l, u& I/ Y) z6 A
  55.                 case 0: EntryPoint = 0xC1000000; break;
    1 w/ D: w, ^1 }' p- ^+ f% n8 c
  56.                 case 1: EntryPoint = 0xC0251FE0; break;  Y/ n; D% C6 n, L) q$ l4 G! [- n+ p. T
  57.                 case 2: EntryPoint = 0xC2000000; break;! G" S0 \: N7 k8 @
  58.                 case 3: EntryPoint = 0xC541DEE0; break;
    / n( P1 n3 ^/ i7 Z6 S( z
  59. 8 h3 x0 I- X  g/ S! M
  60.                 default: UARTprintf("Please input a correct number.\n"); status = 0; goto Choice;0 k) V# P% D7 w* O6 G
  61.         }! u  ^& y( i7 e
  62.        
      W7 B, ~9 v2 U' L8 A
  63.         if(status != 0)/ j1 L( T2 n7 t; `, ?+ I5 A
  64.         {: A' L" j% ?$ a+ A! H5 ]7 r
  65.                 UARTprintf("Starting Application ......\n\r\n");5 ], J9 q9 ~9 T; M# |

  66. 6 ?1 b" n/ N7 M% e; Z' m% P5 e
  67.                 AppEntry = (void (*)(void))EntryPoint;
    - f6 d' a! H$ `9 u% H9 Z
  68.                 (*AppEntry)();
    5 d2 B: y+ `1 H) X' j' P  W% e
  69.         }, V+ I3 v, p4 y) l, U
  70. # a' R, l5 Z8 O. K6 Y( K  \
  71.         return 0;% m' V: C' z+ N/ e5 g# l/ z
  72. }$ u. t$ P! ?( c  D$ m0 n
复制代码

, [4 m9 \0 d4 W2 }3 k4 a( p, X7 B5 Z& V
回复 支持 反对

使用道具 举报

1

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
板凳
 楼主| 发表于 2016-9-4 20:48:58 | 只看该作者
您好,我试了一下这种方法,结果报错了
  K8 g+ `0 C$ Z; N& R8 X. V& l
  m. e, y; X% n

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-4 03:08 , Processed in 0.043483 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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