OSDN Git Service

e25984e4a94c4847ae4c6730a5b04b70da858aa0
[trx-305dsp/dsp.git] / trx305 / kernel / config / blackfin / _common_bf592 / chip_debugboot.c
1 #include "jsp_kernel.h"
2 #include "sil.h"
3
4 #ifdef __GNUC__
5 #include <cdefBF592-A.h>        /* gnu tool chain */
6 #elif defined(__ECC__)
7 #include <cdefbf592-A.h>                /* VisualDSP++ */
8 #include <ccblkfn.h>
9 #include <sysreg.h>
10 #else
11 #error "Compiler is not supported"
12 #endif
13
14 /*
15 * gdbserverがターゲットのリセット機能を提供しないため、gdb経由でターゲット
16 * にアプリッケーションをダウンロードすると正しく動作しないことがある。
17 * このルーチンはターゲットを一度だけリセットする。
18 *
19 * なお、パラメータ debugが FALSEの場合、リセットはしない
20 */
21 void boot_for_gdb(void)
22 {
23     // SYSTEM_RESET     0x0007
24     // DOUBLE_FAULT     0x0008
25     // RESET_DOUBLE     0x2000
26     // RESET_WDOG       0x4000
27     // RESET_SOFTWARE   0x8000
28     if ( enable_boot_for_gdb ){
29         enable_boot_for_gdb = 0;            /* 次はブートしない */
30         *pSWRST = 0x07;                     /* 内蔵ペリフェラルのリセット */
31         asm volatile( "ssync;" );
32         *pSWRST = 0x00;                     /* 内蔵ペリフェラルのリセット解除。 */
33         asm volatile( "ssync;" );
34         *pSYSCR |= 0x10;                    /* no boot on core reset */
35         asm volatile( "ssync;" );
36         asm volatile( "raise 1;" );         /* コアリセット */
37         while( 1 )
38             ;                               /*リセットが発生するまでループ*/
39     }
40 }