嵌入式开发者社区
标题:
多个独立程序之间跳转问题
[打印本页]
作者:
汪洋里的小船0
时间:
2016-8-27 09:37
标题:
多个独立程序之间跳转问题
问题背景:现有两个工程,第一个工程led1中包含一个asm文件和c文件,asm文件实现向led1.c程序入口点跳转,如附件中所示。第二个工程只有一个c文件。三个程序的入口点分配如附件所示。
% d$ L3 B: A C* o
问题描述:在asm文件中跳转语句是“B _c_int00”,但我有两个c文件,也就有两个_c_int00,所以总是无法实现跳转(个人猜测是这个原因)。如何才能实现正常跳转?
+ M' Q- t) y) Z
补充:不能改变工程及文件结构
& {9 j: j! l6 U2 R
请各位大神答疑解惑,必感激不尽
* W+ I! K/ G' U, J J! ~
作者:
希望缄默
时间:
2016-8-29 08:52
这个程序是测试通过的 其中的地址就是 _c_int00
: b6 y) v+ L0 W! J
4 p# f) I" [; x' y: H3 ?
/****************************************************************************/
" r3 _/ H$ |, l5 @% Q6 i2 B
/* */
) A0 W" l4 |. W0 Q
/* BootMenu */
& Q9 R" d# ?6 m: Z2 t/ n5 z0 z
/* */
+ c7 ]7 n7 p8 ~& X3 A" c
/* 2014年11月07日 */
1 t v8 N+ R/ k. p$ U) w& U, e
/* */
- I# E. W9 r: R
/****************************************************************************/
6 F3 _% q" @& F9 n0 H+ Z& y
#include "uartStdio.h"
4 V+ G3 n$ C ~5 e
! ]1 B/ l& V& `1 a
/****************************************************************************/
5 C# U. ~; @" T9 J
/* */
. ]+ `2 C9 O3 B1 Y( k
/* 宏定义 */
* J" C5 Z# l2 w7 {
/* */
- t5 k, X8 F6 j8 z0 X% C& R2 j
/****************************************************************************/
* r" R& c( X0 o5 m N7 e& K( h
; B+ o8 K) W. Z/ W
/****************************************************************************/
- n x6 q/ }3 M; F/ R9 J6 I
/* */
) X' N1 h$ a5 U3 T
/* 全局变量 */
& O3 {% ?) B6 j6 ]
/* */
$ a- j; ~5 K2 N3 u* I8 b* l
/****************************************************************************/
7 t6 P+ o# l5 a1 H
unsigned int EntryPoint = 0xC0000000;
) T$ @( ?8 f6 z; ~& O- ^1 G1 |
& G: W4 F l/ V
/****************************************************************************/
6 R# V$ {* m7 N! j# L9 w
/* */
2 g( `& }2 q+ h7 V/ p' y7 g2 |
/* 函数声明 */
7 k: s; ~ b; \3 J4 y+ b$ k
/* */
2 B8 F0 x0 M. s- y
/****************************************************************************/
! _: [$ F) s- c' A8 m
void (*AppEntry)();
/ y2 x$ g; c5 Y) l: @# v
7 w; C, V& `( {2 O2 C: H
/****************************************************************************/
4 D: s; N' V# @2 V# }4 ~
/* */
& f( }# [( z$ V
/* 主函数 */
; z' X- K9 H" `: h" N
/* */
# [8 }6 i# m" ?+ N' ]9 k
/****************************************************************************/
) \8 J! V% {5 T9 d2 O( m
int main(void)
) t7 C' X, {6 @' W) u
{
0 N6 b! L2 p o; Y
UARTStdioInit();
2 {6 G2 `% N# }. b O) i5 T
# R1 V5 r( \+ J' z/ W" {% W/ P
UARTprintf("\r\nTronlong DSP TMS320C6748 BootMenu\r\n\r\n");
. u' ^- l1 c3 l7 l. e4 Y
( n2 I. e( `0 t% N F+ i. J6 |0 D% S, \
UARTprintf("0.StarterWare LED Test\r\n");
- u9 o2 Z8 d( g/ N# z
UARTprintf("1.SYS/BIOS EasyEvm Test\r\n");
; {6 y g2 M2 @1 B4 d4 i
UARTprintf("2.StarterWare USB OTG HOST Test\r\n");
) u' j# ]4 c; {* V3 T% o& C8 \
UARTprintf("3.DSP/BIOS USB HOST / USB OTG Test\r\n");
/ d& ?9 O) A9 G: X! L. \; J! _
, F$ I0 @3 r8 S
UARTprintf("\r\n");
8 g9 k# `& Q2 B6 ^9 A& J$ S
5 q" z( k% k6 O5 c$ I$ ?0 U
unsigned char val, status = 1;
& o" f0 m8 R3 l+ Y! s- \
Choice:
/ l/ O7 n3 `: P
val = UARTGetNum();
: Y* z& h O2 ?5 Q% |8 h* P9 r
UARTprintf("\r\n");
+ j2 v: Q9 Z* U
: S+ t0 P9 ^) B) s ^
switch(val)
& R+ y& A% d5 ^6 F# H& M
{
# L; S: M2 M8 X1 N9 W0 w
case 0: EntryPoint = 0xC1000000; break;
# n4 W& k* w1 Y
case 1: EntryPoint = 0xC0251FE0; break;
( v8 @4 e; p4 u% R, H# ?: x+ Y
case 2: EntryPoint = 0xC2000000; break;
, S+ a0 O. d' A6 J4 p
case 3: EntryPoint = 0xC541DEE0; break;
+ W$ _1 A3 `- u
# q/ {0 F+ l8 r2 l, _
default: UARTprintf("Please input a correct number.\n"); status = 0; goto Choice;
* q) r6 d/ Y* G$ P/ S
}
- l& ^/ ]8 W C; N4 @3 e- j8 N8 d
0 P2 \* n8 t. W
if(status != 0)
9 F n, i4 {6 O4 h# B; A) Y! E9 \' U
{
& K) Z4 S2 B8 M8 _$ ~3 y9 B) G9 |
UARTprintf("Starting Application ......\n\r\n");
" Z- L# p8 L8 X# r
! @0 x8 g$ C: ]
AppEntry = (void (*)(void))EntryPoint;
8 c6 R* n+ O: A+ e8 [% g& a" ?/ L
(*AppEntry)();
$ @. E& A1 b, n
}
$ {6 b u: [; X$ b2 Y3 [
, q8 d6 f$ W" H- f( q1 F" _7 N
return 0;
& B) ?+ V# x3 ]% ^& J+ E, ^
}
1 \* R' ?. \+ o7 `* b
复制代码
, L, V5 o- s, n+ i: K
! \( j* Q: {- K) _; s4 I" H
作者:
汪洋里的小船0
时间:
2016-9-4 20:48
您好,我试了一下这种方法,结果报错了
! n9 \3 q2 N" Q- a
% @0 {/ ]& \# O' J( H+ ?) J) [% p
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4