嵌入式开发者社区
标题:
多个独立程序之间跳转问题
[打印本页]
作者:
汪洋里的小船0
时间:
2016-8-27 09:37
标题:
多个独立程序之间跳转问题
问题背景:现有两个工程,第一个工程led1中包含一个asm文件和c文件,asm文件实现向led1.c程序入口点跳转,如附件中所示。第二个工程只有一个c文件。三个程序的入口点分配如附件所示。
k" j# G$ m$ o& M) g. ^ w7 k
问题描述:在asm文件中跳转语句是“B _c_int00”,但我有两个c文件,也就有两个_c_int00,所以总是无法实现跳转(个人猜测是这个原因)。如何才能实现正常跳转?
7 w1 ?, C( e) \! g, G! E" V- z7 G
补充:不能改变工程及文件结构
) v" \- b6 o9 g, M, z6 |! E
请各位大神答疑解惑,必感激不尽
+ Z# h; J& C- f" [
作者:
希望缄默
时间:
2016-8-29 08:52
这个程序是测试通过的 其中的地址就是 _c_int00
: c+ M2 S! V) ~3 q9 {
8 Y. n7 ?4 C! Y. J, S
/****************************************************************************/
+ w/ T' u3 a7 r' y, J
/* */
; H5 I: x* D' r2 r' X0 h7 k
/* BootMenu */
+ q- |9 S y) w9 r( X$ m5 y5 r
/* */
* O; z. D. l6 h0 `* L
/* 2014年11月07日 */
3 E* m+ \! I2 D2 k. S
/* */
( V. B4 b( r$ c, `
/****************************************************************************/
! }" k; Z; |$ F7 w
#include "uartStdio.h"
" P/ W1 j6 y% b) j* c
2 K* X5 }: p3 p
/****************************************************************************/
3 i' z& q6 b' E
/* */
4 s! i3 {6 y5 [9 E
/* 宏定义 */
3 t* Z; d0 [ t( H# } `, i
/* */
7 l7 G. P. i+ B; X# C
/****************************************************************************/
|+ e, }1 X" _0 E- k! u
. q$ f% a( W% Z& d( T/ P
/****************************************************************************/
3 n* h6 n# q! W! E, J0 ~4 y) r
/* */
# {: B5 M0 I7 z
/* 全局变量 */
) s$ _: C0 n# m, C- {
/* */
) C6 B" d o" G5 Y& e6 R0 D" p
/****************************************************************************/
" F2 F+ v( h, Q- q
unsigned int EntryPoint = 0xC0000000;
}# I6 l9 y+ B. |1 J* k- t
4 z7 L0 o% p: E" @2 r5 }& O' y
/****************************************************************************/
% K `3 G; X+ t# Q
/* */
2 d" `2 V5 L( @, ^$ n
/* 函数声明 */
5 f" U7 n/ j! p: h9 n
/* */
/ q& Z7 o* ~: a4 d M* G7 V
/****************************************************************************/
q: U' d4 Y% D9 V
void (*AppEntry)();
) w2 r. N. r; @6 C
8 _) k4 B! h4 N+ b/ e( K/ M1 }
/****************************************************************************/
2 C1 F+ E& L- c f! x, D7 o- x
/* */
* }* I1 @7 r/ S9 ?! G
/* 主函数 */
$ r8 p& g0 s O; {" Q
/* */
7 s o$ v- ]- D* j: n
/****************************************************************************/
! L. c& Y3 ?) [
int main(void)
) r; a6 g( I8 X% {$ m
{
$ A c) i0 e% ?3 |5 d) U6 ]# J4 f
UARTStdioInit();
+ ]) x7 v- @- `, ~. y' B
# K( \& j I& o" W, {2 n \5 |
UARTprintf("\r\nTronlong DSP TMS320C6748 BootMenu\r\n\r\n");
& K6 v6 k: B. S* o4 |- I; B
: y+ K. R; D9 f0 U1 t8 c! ~2 K3 M
UARTprintf("0.StarterWare LED Test\r\n");
0 N+ P- M1 |- ]/ H8 p/ a \/ m
UARTprintf("1.SYS/BIOS EasyEvm Test\r\n");
: [9 h: R! v8 t, y
UARTprintf("2.StarterWare USB OTG HOST Test\r\n");
% Z( |0 F& V# N, Q, ]& V
UARTprintf("3.DSP/BIOS USB HOST / USB OTG Test\r\n");
: ?# f6 o% n% I; [3 K! j% I
# Q% {0 A& V4 H2 D3 d
UARTprintf("\r\n");
3 {- t- i$ n3 g* D3 I
$ F3 P" I3 t4 S$ f
unsigned char val, status = 1;
9 H9 c" i7 H0 e F
Choice:
; ?- _4 B5 d! ]8 d8 `& U& V6 o1 L
val = UARTGetNum();
. t2 {+ Y7 P1 d* Q# j3 H s8 A1 R
UARTprintf("\r\n");
( E/ m2 F6 M# i
. N+ E! q; F" P9 n+ [$ f" s3 l
switch(val)
" r! v/ {+ z1 `2 v) {
{
9 a! G- Y- T* z! X) v, J
case 0: EntryPoint = 0xC1000000; break;
6 a# ~) D3 u- |8 ~; B1 m U3 S/ [! X
case 1: EntryPoint = 0xC0251FE0; break;
7 N- F; q# u; K6 r @1 S6 l
case 2: EntryPoint = 0xC2000000; break;
3 y6 k2 Q$ g) @; r
case 3: EntryPoint = 0xC541DEE0; break;
+ N7 P, \3 I/ B
# W) Y& K. M! _3 `
default: UARTprintf("Please input a correct number.\n"); status = 0; goto Choice;
! I: T* A* q+ K' a
}
- g6 e) o4 ?9 c/ e! C9 Y' v" K
( J7 i3 p) S0 m
if(status != 0)
: p5 ?( F( a$ t1 |3 j- w
{
6 x+ i* C u, w7 D5 i* U
UARTprintf("Starting Application ......\n\r\n");
" E; r% H1 q5 Q4 Y# n
% _1 C$ B) [+ c5 F
AppEntry = (void (*)(void))EntryPoint;
9 H' E- {! m/ p- |& B9 g
(*AppEntry)();
3 K# d4 s) F; H2 l' |
}
: m9 t u4 A" P+ b2 [5 H$ ^
# s# `3 a. H& U. l0 R1 l7 c
return 0;
7 s7 u* v9 p$ r
}
! E2 I' ]5 z) I, R
复制代码
8 r' v8 \: d5 l, H6 m
, ]- `' Z7 h9 B o6 y) k
作者:
汪洋里的小船0
时间:
2016-9-4 20:48
您好,我试了一下这种方法,结果报错了
. V) F" @, ?. m1 d
$ h" b- { ^. n0 V7 J
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4