嵌入式开发者社区
标题:
多个独立程序之间跳转问题
[打印本页]
作者:
汪洋里的小船0
时间:
2016-8-27 09:37
标题:
多个独立程序之间跳转问题
问题背景:现有两个工程,第一个工程led1中包含一个asm文件和c文件,asm文件实现向led1.c程序入口点跳转,如附件中所示。第二个工程只有一个c文件。三个程序的入口点分配如附件所示。
4 X' @; z. [- }. L7 P* t3 }1 ^
问题描述:在asm文件中跳转语句是“B _c_int00”,但我有两个c文件,也就有两个_c_int00,所以总是无法实现跳转(个人猜测是这个原因)。如何才能实现正常跳转?
" u* [, A4 S" G% G7 ~! U8 S
补充:不能改变工程及文件结构
# W3 D" X: z9 ~. |
请各位大神答疑解惑,必感激不尽
/ X9 i: {- s* f- l, _1 J5 }
作者:
希望缄默
时间:
2016-8-29 08:52
这个程序是测试通过的 其中的地址就是 _c_int00
& g# f% f/ x8 x1 `7 w0 ]6 U8 G
. Y- |3 [2 d8 Y2 x) I
/****************************************************************************/
% D0 j) Q4 ^3 M$ J, `# {
/* */
9 r3 [. D( d& n5 `/ l" C3 G
/* BootMenu */
9 d! H; Q5 e5 i" W- L
/* */
, j; N+ p9 p$ Y# X3 s0 O
/* 2014年11月07日 */
) S2 Z" A4 I7 q8 a1 E5 I
/* */
( a, G% g2 C% k/ W; n% F0 S* p; N
/****************************************************************************/
0 t" m2 [+ J: z
#include "uartStdio.h"
9 Y1 f. ?& v. l* N2 j% t* _3 b8 M
7 S9 }( X' P' I$ {4 g
/****************************************************************************/
; H; n9 e. O0 I7 Q( {3 a
/* */
, M& W1 f( a, h: a8 L! r8 ?
/* 宏定义 */
: a- M0 @6 f; t! p
/* */
* {2 G. b& D( W
/****************************************************************************/
0 c, C" F4 W' e5 N" a( P
, w+ Z$ ~& `5 x1 |
/****************************************************************************/
6 N1 p% e& z5 o4 q# M$ Y5 X
/* */
/ r3 y0 M+ I* D) A3 H
/* 全局变量 */
' n2 y0 C" V: r1 N0 w6 ~; x
/* */
+ I% J, d$ o" m- W! J1 a9 W+ Z
/****************************************************************************/
/ K7 V& A8 A( ]* C% R
unsigned int EntryPoint = 0xC0000000;
8 _3 f( L& {1 Q+ B0 m6 ]
R6 N# ?5 S! |. F0 r% q4 k
/****************************************************************************/
! V6 D: T. n# X8 N- y/ o& R5 c
/* */
% A Q( m. M! D2 v4 ]
/* 函数声明 */
9 z* Z/ q* |0 O7 v0 ?: Z% I* e5 K! Z
/* */
0 j- q* D; f' a* y
/****************************************************************************/
0 O# z+ `5 J- a: u9 H
void (*AppEntry)();
o. p# e$ g" f5 p; F
- X" {/ C. P! Y8 t( @8 ]
/****************************************************************************/
- b% t m8 a3 `/ ~" T
/* */
0 v. [/ R; {0 F- _% z9 S/ }8 o
/* 主函数 */
- F$ E2 M, `/ S1 Y# t. q& v
/* */
- v1 V9 s, `5 {% Q
/****************************************************************************/
; U" H6 v$ q( p: ~
int main(void)
* e6 R; G8 P& [! l% I$ @9 U; b% T
{
' z( F# Z7 x& }, t( U
UARTStdioInit();
# x. B. Z" }+ P. p+ [
! o9 Z7 Z9 t9 \5 N
UARTprintf("\r\nTronlong DSP TMS320C6748 BootMenu\r\n\r\n");
3 [ M- I0 X4 m% v
4 t" o% O% W8 t, A
UARTprintf("0.StarterWare LED Test\r\n");
! R' ?+ T+ o7 E5 p; ]. p/ i8 `0 H3 b
UARTprintf("1.SYS/BIOS EasyEvm Test\r\n");
/ A7 `- a8 [* Z2 ^& o5 s( d! V
UARTprintf("2.StarterWare USB OTG HOST Test\r\n");
; \& P# B9 K# Q" V5 ]
UARTprintf("3.DSP/BIOS USB HOST / USB OTG Test\r\n");
9 p& s8 V3 t j2 S4 p7 Q' h! q
+ ^; m0 y3 E$ h: E# j, h" P e
UARTprintf("\r\n");
$ F' Q! e' D0 B+ D
& j" S. d# M: H; ?' `! K2 N
unsigned char val, status = 1;
$ r C! k& x$ L+ r
Choice:
S8 f/ w' u" x0 W K
val = UARTGetNum();
) v g5 g# ]: E& W6 q0 [! S9 y
UARTprintf("\r\n");
4 q7 ^ y7 e/ ?9 ~
% E9 H/ b1 z# v) T. w3 t( |
switch(val)
7 j$ }# c2 j" w, P F+ S
{
- p% O/ M! t. j, d7 q
case 0: EntryPoint = 0xC1000000; break;
8 z$ o) @0 v) I/ T' h. ~4 {
case 1: EntryPoint = 0xC0251FE0; break;
, i# n. A" D+ v$ ~+ l: [* b
case 2: EntryPoint = 0xC2000000; break;
8 m4 D$ s% v6 o; n
case 3: EntryPoint = 0xC541DEE0; break;
# z/ E9 S7 d! _) X/ v
" B/ H% ?# r( L% g, S
default: UARTprintf("Please input a correct number.\n"); status = 0; goto Choice;
. _( L( W5 s( {9 [; Q6 S [
}
( C( i/ m' C6 l6 \1 c
: X0 ~/ S+ |, e& `$ i
if(status != 0)
/ Q' C* H8 D, i% t( R- L7 e8 o
{
, k% o+ g) p& g9 i
UARTprintf("Starting Application ......\n\r\n");
0 }5 U" ?$ d9 M1 G
/ R" z/ Y: t$ N6 V K
AppEntry = (void (*)(void))EntryPoint;
" m, b& e) S% h3 u7 ]. G" V1 a! {
(*AppEntry)();
; \- n/ _4 Q( N1 F% H) Q
}
D$ J1 S% z. i- L# l: b1 d
; I5 c4 z8 \& X. P, m) a/ `
return 0;
: Q, d* P" I1 y+ R' T3 Y9 c6 ^
}
% ?' x; _: P2 D- J
复制代码
7 p2 Q( j% K* ~8 Z" q* q7 ?
, Q+ v# b3 m! \
作者:
汪洋里的小船0
时间:
2016-9-4 20:48
您好,我试了一下这种方法,结果报错了
4 l2 |# O4 d4 R2 Y: ?
p5 F F+ C5 r
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4