OSDN Git Service

Merge branch 'suikan_experimental2' into develop
[trx-305dsp/dsp.git] / hirado / kernel / config / blackfin / _common_bf533 / chip_debugboot.c
1 #include "jsp_kernel.h"
2 #include "sil.h"
3
4 /*
5 * gdbserverがターゲットのリセット機能を提供しないため、gdb経由でターゲット
6 * にアプリッケーションをダウンロードすると正しく動作しないことがある。
7 * このルーチンはターゲットを一度だけリセットする。
8 *
9 * なお、パラメータ debugが FALSEの場合、リセットはしない
10 */
11 void boot_for_gdb(void)
12 {
13     // SYSTEM_RESET     0x0007
14     // DOUBLE_FAULT     0x0008
15     // RESET_DOUBLE     0x2000
16     // RESET_WDOG       0x4000
17     // RESET_SOFTWARE   0x8000
18     if ( enable_boot_for_gdb ){
19         enable_boot_for_gdb = 0;            /* 次はブートしない */
20         *__pSWRST = 0x07;                     /* 内蔵ペリフェラルのリセット */
21         asm volatile( "ssync;" );
22         *__pSWRST = 0x00;                     /* 内蔵ペリフェラルのリセット解除。 */
23         asm volatile( "ssync;" );
24         *__pSYSCR |= 0x10;                    /* no boot on core reset */
25         asm volatile( "ssync;" );
26         asm volatile( "raise 1;" );         /* コアリセット */
27         while( 1 )
28             ;                               /*リセットが発生するまでループ*/
29     }
30 }