From a8f55041520455f80f42ab568f69cf8b101ec0c9 Mon Sep 17 00:00:00 2001 From: fujita_ryohei Date: Fri, 25 Dec 2009 02:28:48 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=87=E3=83=90=E3=83=83=E3=82=B0=E7=94=A8?= =?UTF-8?q?=E3=81=AE=E3=82=B3=E3=83=BC=E3=83=89=E3=82=92=20ifdef=20?= =?UTF-8?q?=E3=81=A7=E8=BF=BD=E3=81=84=E5=87=BA=E3=81=97=E3=81=9F=EF=BC=88?= =?UTF-8?q?=E5=89=B2=E3=82=8A=E8=BE=BC=E3=81=BF=E7=A6=81=E6=AD=A2=E6=9C=9F?= =?UTF-8?q?=E9=96=93=E3=82=92=E7=9F=AD=E3=81=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@70 013db118-44a6-b54f-8bf7-843cb86687b1 --- trunk/main.c | 2 +- trunk/renge/renge.c | 142 +++++++++++++++++++++++++++++++++--------- trunk/user_define.h | 1 - trunk/yav_mcu_bsr.plg | 4 -- trunk/yav_mcu_bsr.pri | 124 ++++++++++++++++++------------------ trunk/yav_mcu_bsr.prk | 37 ++++++----- trunk/yav_mcu_bsr.sdb | 23 +++---- 7 files changed, 208 insertions(+), 125 deletions(-) diff --git a/trunk/main.c b/trunk/main.c index cfa8f0c..5bf7e44 100644 --- a/trunk/main.c +++ b/trunk/main.c @@ -79,8 +79,8 @@ void main_loop( void ) renge_task_interval_run( ); // 内部で、システムtickまたは強制起動します while( renge_task_interval_run_force != 0 ) { - renge_task_interval_run_force = 0; renge_task_interval_run( ); + renge_task_immed_run( ); } WDT_Restart( ); renge_task_immed_run( ); // ここのループが廻る度に実行されます diff --git a/trunk/renge/renge.c b/trunk/renge/renge.c index 9ca4008..5e695af 100644 --- a/trunk/renge/renge.c +++ b/trunk/renge/renge.c @@ -18,6 +18,9 @@ #include "..\config.h" #include "..\user_define.h" + +// #define _renge_test_ + //****************************************************************************** bit renge_flg_interval; bit renge_task_interval_run_force; @@ -26,7 +29,6 @@ u8 system_time; - #include "..\bsr_system.h" extern system_status_ system_status; @@ -80,11 +82,14 @@ err renge_task_interval_run(){ u8 i; // インターバル起動 - if( renge_flg_interval == 1 ){ - renge_flg_interval = 0; - for( i = 0; i != TSK_LAST; i += 1 ) + if(( renge_flg_interval == 1 ) + || ( renge_task_interval_run_force != 0 )) // todo 統合 + { + renge_task_interval_run_force = 0; + renge_flg_interval = 0; + for( i = 0; i != TSK_LAST; i += 1 ) { - tasks[ i ](); + tasks[ i ](); } } return( ERR_SUCCESS ); @@ -135,15 +140,13 @@ err renge_task_immed_add( task_status* new_task ){ if( tasks_immed[ i ] == new_task ) { // 重複登録はしない - NOP(); +// NOP(); return( ERR_ERR ); } } else { // 空きを見つけた - DI(); - DBG_LED_WIFI_2_on; // もたもたしているうちに割り込み等から割り込まれるのを考慮 // 滅多にないはずだが for( ; i < TASK_IMMED_RUN_LIST_MAX; i += 1 ) @@ -151,23 +154,25 @@ err renge_task_immed_add( task_status* new_task ){ if( tasks_immed[ i ] == TSK_IMM_EMPTY_ ) { tasks_immed[ i ] = new_task; - DBG_LED_WIFI_2_off; - EI(); return( ERR_SUCCESS ); } } // 割り込まれてタスク登録できなくなった - DBG_LED_WIFI_2_off; - EI(); return( ERR_ERR ); } } // タスク登録しすぎ(無いはず - NOP(); // デバッガで捕まえるため +// NOP(); // デバッガで捕まえるため return( ERR_ERR ); } + + + + + + /************************************** 逐次実行タスクの実行 **************************************/ @@ -180,6 +185,7 @@ err renge_task_immed_run(){ for( list_id = 0; list_id < TASK_IMMED_RUN_LIST_MAX; list_id += 1 ){ if( tasks_immed[ list_id ] != TSK_IMM_EMPTY_ ){ +#ifdef _renge_test_ if( tasks_immed[ list_id ] == TSK_IMM_DELETED_ ) { NOP(); @@ -189,6 +195,7 @@ err renge_task_immed_run(){ // 予期しないタイミングで immed_run が呼ばれた } else +#endif { if( tasks_immed[ list_id ]() == ERR_SUCCESS ) { @@ -197,6 +204,20 @@ err renge_task_immed_run(){ last_task_id = list_id; } } +#ifdef _renge_test_ + else + { + list_id += 1; + for( ; list_id < TASK_IMMED_RUN_LIST_MAX; list_id++ ) + { + if( tasks_immed[ list_id ] != TSK_IMM_EMPTY_ ) + { + NOP(); // ? + } + } + break; + } +#endif } // タスク削除 @@ -205,46 +226,105 @@ err renge_task_immed_run(){ { u8 i,j; +#ifdef _renge_test_ + if ( tasks_immed[ 1 ] != 0 ){ + NOP(); + } +#endif // リスト前詰め - for( i = 0; i < TASK_IMMED_RUN_LIST_MAX; i++) - { - if( tasks_immed[ i ] == TSK_IMM_DELETED_ ) - { - tasks_immed[ i ] = TSK_IMM_EMPTY_; - } - } - i = 0; // 前詰め後リストの最後尾 - j = 0; // リストの後ろの方のタスクを探す - for( j = 0; j < TASK_IMMED_RUN_LIST_MAX; j++) -// for( ; j <= last_task_id; j++) // 間で割り込まれたときに困る + j = 1; // リストの後ろの方のタスクを探す + for( ; j < TASK_IMMED_RUN_LIST_MAX; j++ ) { DI(); DBG_LED_WIFI_2_on; - if( tasks_immed[ i ] == TSK_IMM_EMPTY_ ) + if( tasks_immed[ i ] == TSK_IMM_DELETED_ ) { - // 前詰めできるスペースを見つけた - if(( tasks_immed[ j ] != TSK_IMM_EMPTY_ ) - && ( tasks_immed[ j ] != TSK_IMM_DELETED_ )) + if( tasks_immed[ j ] == TSK_IMM_EMPTY_ ) + { + // リストの最後だった + for( ; i < j ; i += 1 ) + { + tasks_immed[ i ] = TSK_IMM_EMPTY_; + } +#ifdef _renge_test_ + /// ほんと? + j += 1; + for( ; j < TASK_IMMED_RUN_LIST_MAX; j++ ) + { + if( tasks_immed[ j ] != TSK_IMM_EMPTY_ ) + { + NOP(); // ? + } + } +#endif + DBG_LED_WIFI_2_off; + EI(); + break; + } + if( tasks_immed[ j ] != TSK_IMM_DELETED_ ) { // 探索隊が前詰めすべきタスクを見つけた tasks_immed[ i ] = tasks_immed[ j ]; - tasks_immed[ j ] = TSK_IMM_EMPTY_; + tasks_immed[ j ] = TSK_IMM_DELETED_; i += 1; } } else { - // 実行すべきタスクが滞留することになった +#ifdef _renge_test_ + // タスクが滞留 + if( tasks_immed[ i ] == TSK_IMM_EMPTY_ ) + { + NOP(); + // そんなはずない + } +#endif i += 1; } DBG_LED_WIFI_2_off; EI(); + if( tasks_immed[ i ] == TSK_IMM_EMPTY_ ) + { +#ifdef _renge_test_ + NOP(); +#endif + break; + // リストの最後だった + } } + DI(); + DBG_LED_WIFI_2_on; + + // ここまでで完全に前詰めされている + for( j = 0; j < TASK_IMMED_RUN_LIST_MAX; j++ ) + { + if( tasks_immed[ j ] == TSK_IMM_EMPTY_ ) + { +#ifdef _renge_test_ + NOP(); + j += 1; + for( ; j < TASK_IMMED_RUN_LIST_MAX; j++ ) + { + if( tasks_immed[ j ] != TSK_IMM_EMPTY_ ) + { + NOP(); // ? + } + } +#endif + break; + // リストの最後 + } + if( tasks_immed[ j ] == TSK_IMM_DELETED_ ) + { + tasks_immed[ j ] = TSK_IMM_EMPTY_; + } + } + DBG_LED_WIFI_2_off; + EI(); } } - } while( last_task_id != 0xFF ); // タスクが残っていたら再実行 diff --git a/trunk/user_define.h b/trunk/user_define.h index a24a4c8..4177827 100644 --- a/trunk/user_define.h +++ b/trunk/user_define.h @@ -1,7 +1,6 @@ #ifndef _USER_DEF_ #define _USER_DEF_ - #define IIC_SLV_ADDR_MONITOR 0x6E #define IIC_T_SLAVEADDRESS 0x4A #define IIC_C_SLAVEADDRESS 0x4A diff --git a/trunk/yav_mcu_bsr.plg b/trunk/yav_mcu_bsr.plg index 2336351..c28e9e7 100644 --- a/trunk/yav_mcu_bsr.plg +++ b/trunk/yav_mcu_bsr.plg @@ -3,10 +3,6 @@ C:\WINDOWS\system32\cmd.exe /c touch magic.c Compilation complete, 0 error(s) and 0 warning(s) found. "C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff inter_asm\magic.asm Assembly complete, 0 error(s) and 0 warning(s) found. -"C:\Program Files\NEC Electronics Tools\CC78K0R\W2.10\bin\cc78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -irenge -i"C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\inc78k0r" -ms -quvjl3wt -sainter_asm -zp -no renge\renge.c -Compilation complete, 0 error(s) and 0 warning(s) found. -"C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\ra78k0r.exe" -c9F0104 -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff inter_asm\renge.asm -Assembly complete, 0 error(s) and 0 warning(s) found. "C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\lk78k0r.exe" -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -obsr.lmf "..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\lib78k0r\s0rm.rel" -go85h,0FC00h,1024 -gi0FFFFFFFFFFFFFFFFFFFFh -pbsr_k0r.map -nkd -kp -gb6EFBFFh -b"C:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\V1.20\lib78k0r\fsl.lib" -bcl0rdm.lib -bcl0rm.lib -bcl0rmf.lib -i"C:\Program Files\NEC Electronics Tools\CC78K0R\W2.10\lib78k0r" -dbsr_mcu.dr -s -w0 loader.rel pm.rel i2c_ctr.rel main.rel magic.rel WDT.rel i2c_mcu.rel i2c_twl.rel ini_VECT.rel led.rel rtc.rel vreg_ctr.rel vreg_twl.rel adc.rel renge.rel accero.rel self_flash.rel reboot.rel sw.rel task_debug.rel task_misc.rel task_sys.rel Link complete, 0 error(s) and 0 warning(s) found. "C:\Program Files\NEC Electronics Tools\RA78K0R\W1.31\bin\oc78k0r.exe" -y"C:\Program Files\NEC Electronics Tools\DEV" -_msgoff -o.\bsr.hex -nu -ki bsr.lmf diff --git a/trunk/yav_mcu_bsr.pri b/trunk/yav_mcu_bsr.pri index a7ef82f..f454f83 100644 --- a/trunk/yav_mcu_bsr.pri +++ b/trunk/yav_mcu_bsr.pri @@ -78,10 +78,10 @@ Symbol Type=OFF Language=C Kanji=SJIS [Source] -Geometry=310, 103, 974, 1014 +Geometry=235, 74, 1025, 1014 Window=Normal -DispStart=262 -CaretPos=263,0 +DispStart=33 +CaretPos=89,0 Mode=Normal DispFile= Address1= @@ -140,26 +140,26 @@ SaveStart= SaveEnd= Accumulative=ON [Source1] -Geometry=35, 10, 974, 1014 +Geometry=34, 50, 1025, 1014 Window=Normal -DispStart=8 -CaretPos=157,0 +DispStart=73 +CaretPos=94,0 Mode=Normal -DispFile=task_misc.c +DispFile=vreg_ctr.c Accumulative=ON [Source2] -Geometry=119, 82, 974, 1014 +Geometry=135, 144, 1025, 1014 Window=Normal -DispStart=145 -CaretPos=216,0 +DispStart=111 +CaretPos=200,0 Mode=Normal -DispFile=loader.c +DispFile=task_misc.c Accumulative=ON [Assemble] Geometry=605, 2, 600, 400 Window=Normal -DispStart=16229 -CaretPos=16229,27 +DispStart=687 +CaretPos=687,27 Address1= Address2= Address3= @@ -793,7 +793,7 @@ RP2=3 RP3=3 PC=3 SP=3 -PSW=3 +PSW=7 ES=3 CS=3 [Event Manager] @@ -871,78 +871,80 @@ Detail=OFF Last Name= Count=0 [Variable] -Geometry=1225, 6, 354, 536 +Geometry=1225, 6, 354, 1082 Window=Normal Boundary=13762700 0=.P0.0,P,S,A,+,1 1=.p3.0,P,S,A,+,1 2=.P0.1,P,S,A,+,1 -3=.system_status,.,N,A,+,1 -4=.last_task_id,P,N,A,+,1 -5=.i,P,N,A,+,1 -6=.j,P,N,A,+,1 -7=.list_id,P,N,A,+,1 -8=+tasks_immed,P,N,A,-,1 -9=.reg_shadow,P,N,A,+,1 -Line=10 +3=.rtcen,P,S,A,+,1 +4=.rtcif,P,S,A,+,1 +5=.RTCIMK,P,S,A,+,1 +6=.tasks,P,N,A,+,1 +7=.new_task,.,N,A,+,1 +8=.SEC,P,S,A,+,1 +9=.wdte,P,S,A,+,1 +10=.system_status,.,N,A,+,1 +11=.last_task_id,P,N,A,+,1 +12=.i,P,N,A,+,1 +13=.j,P,N,A,+,1 +14=.list_id,P,N,A,+,1 +15=.renge_flg_interval,P,N,A,+,1 +16=+vreg_twl,P,N,A,-,1 +17=+vreg_ctr,P,N,A,-,1 +18=.tasks_immed,P,N,A,+,1 +19=.reg_shadow,P,N,A,+,1 +Line=20 [Quick Watch] -0=P2.4,B,A,1 -1=ADPC,P,A,1 -2=task_immed_run_list,P,A,1 -3=tasks_immed,P,A,1 -4=last_task_id,P,A,1 -5=j,P,A,1 -6=system_status,P,A,1 -7=RESET1_n,P,A,1 -8=P0.0,P,A,1 -9=P0.1,P,A,1 -10=p14.0,P,A,1 -11=reg_shadow,P,A,1 -12=list_id,P,A,1 -13=p[14,P,A,1 -14=p14,P,A,1 -15=p3.0,P,A,1 +0=list_id,P,A,1 +1=p[14,P,A,1 +2=p14,P,A,1 +3=p3.0,P,A,1 +4=new_task,P,A,1 +5=tasks,P,A,1 +6=RTCIMK,P,A,1 +7=rtcen,P,A,1 +8=renge_flg_interval,P,A,1 +9=rtccmk,P,A,1 +10=rtciimk,P,A,1 +11=wdte,P,A,1 +12=SEC,P,A,1 +13=rtcif,P,A,1 +14=vreg_ctr,P,A,1 +15=vreg_twl,P,A,1 [Software Break] Geometry=1204, 674, 500, 428 Window=Normal Width=150 30 200 100 -Name0=Swb00002 -Address0=renge.c#_renge_task_immed_add+0x59 +Name0=Swb00001 +Address0=task_misc.c#_do_command+0x15 Window0=ASM Status0=ON -Name1=Swb00003 -Address1=renge.c#_renge_task_immed_add+0x4e +Name1=Swb00002 +Address1=task_misc.c#_do_command+0x37 Window1=ASM Status1=ON -Name2=Swb00009 -Address2=renge.c#_renge_task_immed_run+0x25 +Name2=Swb00003 +Address2=task_misc.c#_do_command+0x4a Window2=ASM Status2=ON Name3=Swb00005 -Address3=pm.c#_ntr_pmic_comm+0x86 +Address3=task_misc.c#_do_command+0x8 Window3=ASM Status3=ON -Name4=Swb00006 -Address4=task_misc.c#_do_command+0x8 +Name4=Swb00004 +Address4=vreg_twl.c#_vreg_twl_write+0x43 Window4=ASM Status4=ON -Name5=Swb00001 -Address5=task_misc.c#_do_command+0x15 +Name5=Swb00007 +Address5=vreg_ctr.c#_vreg_ctr_write+0x10d Window5=ASM Status5=ON -Name6=Swb00004 -Address6=task_misc.c#_do_command+0x34 +Name6=Swb00006 +Address6=vreg_ctr.c#_vreg_ctr_write+0x11c Window6=ASM Status6=ON -Name7=Swb00007 -Address7=task_misc.c#_do_command+0x44 -Window7=ASM -Status7=ON -Name8=Swb00008 -Address8=pm.c#_PM_sys_pow_on+0x6f -Window8=ASM -Status8=ON -Count=9 +Count=7 [Reset] Debugger=ON Symbol=OFF diff --git a/trunk/yav_mcu_bsr.prk b/trunk/yav_mcu_bsr.prk index c37f854..33d247e 100644 --- a/trunk/yav_mcu_bsr.prk +++ b/trunk/yav_mcu_bsr.prk @@ -1,23 +1,28 @@ [ProjectManager] -FrameMax=0 -FrameX=142 -FrameY=100 +FrameMax=1 +FrameX=-1187 +FrameY=33 FrameCX=1299 FrameCY=1043 -OpenFile1=accero.c,0,272,165,1516,922,26,119,26,0 -OpenFile2=task_sys.c,0,521,328,1765,1085,25,250,25,0 -OpenFile3=bsr_mcu.dr,0,198,198,1177,834,0,54,0,0 -OpenFile4=adc.c,0,220,220,1199,856,0,112,0,0 -OpenFile5=loader.c,0,266,31,1510,788,23,43,23,0 -OpenFile6=sw.c,0,132,132,1376,889,0,166,17,0 -OpenFile7=pm.c,0,421,154,1400,790,25,271,0,0 -OpenFile8=config.h,0,282,262,1526,1019,0,19,0,0 -OpenFile9=ProjectWindow +OpenFile1=task_sys.c,0,521,328,1765,1085,25,250,25,0 +OpenFile2=bsr_mcu.dr,0,198,198,1177,834,0,54,0,0 +OpenFile3=loader.c,0,266,31,1510,788,23,43,23,0 +OpenFile4=sw.c,0,132,132,1376,889,0,166,17,0 +OpenFile5=pm.c,0,421,154,1400,790,25,271,0,0 +OpenFile6=config.h,0,282,262,1526,1019,0,19,0,0 +OpenFile7=vreg_ctr.c,0,159,252,1138,888,30,201,38,0 +OpenFile8=ProjectWindow PrjPos=0,2,754,3,253 -OpenFile10=vreg_ctr.c,0,264,264,1243,900,0,344,0,0 -OpenFile11=renge\renge.c,0,286,286,1265,922,0,136,0,0 -OpenFile12=OutputWindow -OutputPos=0,229,1000,411,1513 +OpenFile9=renge\renge_task_immediate.h,0,308,308,1276,933,0,23,0,0 +OpenFile10=renge\renge_task_intval.h,0,0,0,968,625,37,23,37,0 +OpenFile11=renge\renge_defs.h,0,22,22,990,647,0,50,0,0 +OpenFile12=adc.c,0,220,220,1199,856,0,73,0,0 +OpenFile13=accero.c,0,272,165,1516,922,0,114,13,0 +OpenFile14=main.c,0,66,66,1034,691,0,70,0,0 +OpenFile15=renge\renge.c,0,285,287,1264,923,15,225,0,0 +OpenFile16=task_misc.c,0,88,88,1056,713,0,147,0,0 +OpenFile17=OutputWindow +OutputPos=0,79,487,55,1164 ActivePRJ=yav_mcu_bsr.prj [ProjectWindow] ProjectWindowDispType=0 diff --git a/trunk/yav_mcu_bsr.sdb b/trunk/yav_mcu_bsr.sdb index 3b69053..46748b0 100644 --- a/trunk/yav_mcu_bsr.sdb +++ b/trunk/yav_mcu_bsr.sdb @@ -11,17 +11,18 @@ T=4b3081f8 7=rtc.h 8=reboot.h [pm.c] -T=4b2f0666 +T=4b333a0b 1=incs.h 2=adc.h 3=led.h 4=pm.h +5=renge\renge.h [i2c_ctr.c] T=4b2611c9 1=incs.h 2=accero.h [main.c] -T=4b25f14b +T=4b3321f7 1=incs_loader.h 2=WDT.h 3=rtc.h @@ -30,7 +31,7 @@ T=4b25f14b 6=led.h 7=adc.h [magic.c] -T=4b30a8db +T=4b333500 1=config.h [WDT.c] T=4afd21ca @@ -77,7 +78,7 @@ T=4b308310 3=pm.h 4=led.h [renge\renge.c] -T=4b30a8e8 +T=4b333374 1=renge\renge_defs.h 2=renge\renge_task_intval.h 3=renge\renge_task_immediate.h @@ -86,7 +87,7 @@ T=4b30a8e8 6=user_define.h 7=bsr_system.h [accero.c] -T=4b309c03 +T=4b32f7f3 1=incs.h 2=..\..\Program Files\NEC Electronics Tools\CC78K0R\W2.10\inc78k0r\math.h [self_flash.c] @@ -114,7 +115,7 @@ T=4b3056a4 3=pm.h 4=accero.h [task_misc.c] -T=4b277423 +T=4b333a0b 1=incs.h 2=renge\renge.h 3=pm.h @@ -144,19 +145,19 @@ T=4b25f1a9 T=4b023fdb 1=config.h [user_define.h] -T=4b307b06 +T=4b333a0b [config.h] T=4b306830 [bsr_system.h] T=4b3064de [renge\renge.h] -T=4b024862 +T=4b32c168 1=renge\renge_defs.h 2=renge\renge_task_immediate.h [renge\renge_defs.h] -T=4b30a8e8 +T=4b32f836 [renge\renge_task_immediate.h] -T=4afa8168 +T=4b32f91f 1=renge\renge_defs.h [vreg_ctr.h] T=4b277ab7 @@ -202,7 +203,7 @@ T=4b25e782 [i2c_twl_defs.h] T=4afd21ca [renge\renge_task_intval.h] -T=4ac9ab84 +T=4b32f777 1=renge\renge_defs.h [i2c_twl.h] T=4b309c28