OSDN Git Service

cecf1941515cc523ae2a4db7bd86e9d78a1d9cbc
[trx-305dsp/dsp.git] / trx305 / kernel / config / blackfin / _common_bf548 / chip_debugboot.c
1 #include "jsp_kernel.h"
2
3 #ifdef __GNUC__
4 #include "cdefBF548.h"       /* gnu tool chain */
5 #elif defined(__ECC__)
6 #error "Don't use sys_debugboot.c for VDSP "
7 #else
8 #error "Compiler is not supported"
9 #endif
10
11
12 /*
13 * gdbserverがターゲットのリセット機能を提供しないため、gdb経由でターゲット
14 * にアプリッケーションをダウンロードすると正しく動作しないことがある。
15 * このルーチンはターゲットを一度だけリセットする。
16 */
17 void boot_for_gdb( void )
18 {
19     if ( enable_boot_for_gdb ){   /* ソフトウェアリセットが起きていないなら以下実行 */
20         enable_boot_for_gdb = 0;            /* リブートは一回だけ */
21         *pSWRST = 0x07;                     /* 内蔵ペリフェラルのリセット */
22         asm volatile( "ssync;" );
23         *pSWRST = 0x00;                     /* 内蔵ペリフェラルのリセット解除。 */
24         asm volatile( "ssync;" );
25         *pSYSCR |= 0x10;                    /* no boot on core reset */
26         asm volatile( "ssync;" );
27         asm volatile( "raise 1;" );         /* コアリセット */
28         while( 1 )
29             ;                               /*リセットが発生するまでループ*/
30     }
31     else
32     {
33         *pPLL_LOCKCNT = 0x200;          /* Fix the anormaly 05000430 */
34     }
35 }