AT91USART_REG_WRITE(self, AT91USART_US_BRGR, 0x00000034);
AT91USART_REG_WRITE(self, AT91USART_US_MR, 0x000008c0); /* 8bit, non-paroty */
AT91USART_REG_WRITE(self, AT91USART_US_CR, 0x00000050); /* enable */
+ AT91USART_REG_WRITE(self, AT91USART_US_IDR, 0x0000003f); /* 割り込みマスク初期化 */
AT91USART_REG_WRITE(self, AT91USART_US_IER, 0x00000001); /* 受信割り込み許可 */
SysInt_Enable(self->iIntNum);
_KERNEL_ENTER_SVC(); /* %jp{サービスコールに入る}%en{enter service-call} */
/* %jp{空きID探索} */
+#if _KERNEL_ACRE_TSK_ASCENDING ORDER
+ /* %jp{空きID昇順探索} */
for ( tskid = _KERNEL_TSK_TMIN_ID; tskid <= _KERNEL_TSK_TMAX_ID; tskid++ )
{
if ( !_KERNEL_TSK_CHECK_EXS(tskid) )
break;
}
}
- if ( tskid > _KERNEL_TMAX_TSKID )
+ if ( tskid > _KERNEL_TSK_TMAX_ID )
{
_KERNEL_LEAVE_SVC(); /* %jp{サービスコールから出る}%en{leave service-call} */
return E_NOID; /* %jp{ID番号不足} */
}
+#else
+ /* %jp{空きID降順探索} */
+ for ( tskid = _KERNEL_TSK_TMAX_ID; tskid >= _KERNEL_TSK_TMIN_ID; tskid-- )
+ {
+ if ( !_KERNEL_TSK_CHECK_EXS(tskid) )
+ {
+ break;
+ }
+ }
+ if ( tskid < _KERNEL_TSK_TMIN_ID )
+ {
+ _KERNEL_LEAVE_SVC(); /* %jp{サービスコールから出る}%en{leave service-call} */
+ return E_NOID; /* %jp{ID番号不足} */
+ }
+#endif
/* %jp{タスク生成} */
erid = (ER_ID)_kernel_cre_tsk(tskid, pk_ctsk);
ID tskid;
/* %jp{テーブルを検索} */
- for ( tskid = _KERNEL_TMIN_TSKID; tskid <= _KERNEL_TMAX_TSKID; tskid++ )
+ for ( tskid = _KERNEL_TSK_TMIN_ID; tskid <= _KERNEL_TSK_TMAX_ID; tskid++ )
{
if ( _KERNEL_TSK_ID2TCB(tskid) == pk_tcb )
{