Skip to content

Commit bb0efc7

Browse files
authored
Merge pull request #28 from danyhm/master
Add ltorg to gcc arm cm3+4f+7 port
2 parents fbb78cb + c4c5645 commit bb0efc7

File tree

3 files changed

+7
-2
lines changed

3 files changed

+7
-2
lines changed

portable/GCC/ARM_CM3/port.c

+1
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,7 @@ static void prvPortStartFirstTask( void )
247247
" isb \n"
248248
" svc 0 \n" /* System call to start first task. */
249249
" nop \n"
250+
" .ltorg \n" /* make sure the pool is placed here, so ldr doesn't generate a too long jump */
250251
);
251252
}
252253
/*-----------------------------------------------------------*/

portable/GCC/ARM_CM4F/port.c

+3-1
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,7 @@ static void prvPortStartFirstTask( void )
277277
" isb \n"
278278
" svc 0 \n" /* System call to start first task. */
279279
" nop \n"
280+
" .ltorg \n" /* make sure the pool is placed here, so ldr doesn't generate a too long jump */
280281
);
281282
}
282283
/*-----------------------------------------------------------*/
@@ -707,7 +708,8 @@ static void vPortEnableVFP( void )
707708
" \n"
708709
" orr r1, r1, #( 0xf << 20 ) \n" /* Enable CP10 and CP11 coprocessors, then save back. */
709710
" str r1, [r0] \n"
710-
" bx r14 "
711+
" bx r14 \n"
712+
" .ltorg \n" /* make sure the pool is placed here, so ldr doesn't generate a too long jump */
711713
);
712714
}
713715
/*-----------------------------------------------------------*/

portable/GCC/ARM_CM7/r0p1/port.c

+3-1
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,7 @@ static void prvPortStartFirstTask( void )
271271
" isb \n"
272272
" svc 0 \n" /* System call to start first task. */
273273
" nop \n"
274+
" .ltorg \n" /* make sure the pool is placed here, so ldr doesn't generate a too long jump */
274275
);
275276
}
276277
/*-----------------------------------------------------------*/
@@ -697,7 +698,8 @@ static void vPortEnableVFP( void )
697698
" \n"
698699
" orr r1, r1, #( 0xf << 20 ) \n" /* Enable CP10 and CP11 coprocessors, then save back. */
699700
" str r1, [r0] \n"
700-
" bx r14 "
701+
" bx r14 \n"
702+
" .ltorg \n" /* make sure the pool is placed here, so ldr doesn't generate a too long jump */
701703
);
702704
}
703705
/*-----------------------------------------------------------*/

0 commit comments

Comments
 (0)