(toppers-users 3063) [H8]E_CTX reported by `isig_tim()' in line 63 of `../jsp/systask/timer.c'. ȯ
¼
norichan1108 gmail.com
2010ǯ 2 12 () 22:21:08 JST
Ϥޤơ¼Ȥޤ
ˤH8/3069Toppers/JSPѤ֤ȤळȤȤʤޤ
֤ȤƤϥեåLCDȥꥢ̿ǥХĤʤǡ̾
ɽȤñʥץꥱǤ
ɽưǧǤǥХȤΥꥢ̿⤤餫ϤǤƤ
Ǥꥢ̿˥եꡢE_CTXȤʤisig_tim()顼
֤ꤷƤޤʤʤޤޤ
E_CTX reported by `isig_tim()' in line 63 of `../jsp/systask/timer.c'.
¤֤ΤΤϷˤޤǤ˺¤ưž夲ʤФʤʤȤ⤢ꡢ
ΤޤToppers/JSPȤΤľȽǤʤФʤʤ
äƤޤ⤷H8ݡȤǤξ嵭θݤˤĤƲ
餴ޤǤ礦
줫顢äH8Υϡɥޥ˥奢ФḫȤ
t_cpu_lock()ǸƤФƤdisintμORCCCRI,UIե饰åȤ
ľcpulockե饰ꤷƤޤORC¹˳ߤ硢
H8ORCμ̿¹ԤƤʬ褦Ǥ
ʤȡCPUå֤dzߤäƤޤǽޤ
ʤΤǡdisintORCθNOPʤ̵ʽ줿ۤɤ褦˻פޤ
--Ѥ--
5.5.2ߤμդػߤƤ̿
ߤػߤƤ̿ˤϡLDCANDCORCXORC ̿ޤ
ȯȡߥȥ餬̤ͥȽꤷ塢CPU
ƳߤᤷޤΤȤCPUߤػߤƤ̿¹ԤƤ
ϡ̿μ¹Ԥλ塢ɬ̿¹Ԥޤ
--Ѥޤ--
ʤ嵭ν(NOPɲ)ϼ긵Ǽºݤ˻ƸޤθݤβˤϤ
ޤǤ¾θΤȻפޤ
Ķ
ubuntu 8.04TLS(on VMWare)
gcc-3.4.3 ѥå(with-newlib disable-nls)
binutils-1.15 (disable-nld)
newlib-1.13.0
make 3.81
ǤꥢʬΥǤ
LCD䥭ϴϢ٤ƻ֤ǤƸޤ
oid rfid_task_main( VP_INT exinf )
{
UB buf[RECV_BUF_LEN];
ER result;
RFID_MSG* msg;
int i;
int cnt;
int l;
T_SERIAL_RPOR sts;
if ((result = serial_opn_por(USER_PORTID)) == E_OK)
{
/* ݡե饰 */
syscall(serial_ctl_por(USER_PORTID, 0));
/* ߡơޥɤ˼դ褦ˤ */
for (i=0; i<2; i++)
{
/* ߡCR */
syslog(LOG_NOTICE, "Send:CR");
result = serial_wri_dat(USER_PORTID, DUMMY, sizeof(DUMMY)-1);
syslog(LOG_NOTICE,"result:%d",result);
if (result != sizeof(DUMMY)-1)
{
syslog(LOG_EMERG, "error serial_wri_dat() code=%d", result);
}
/* 100msԵ */
syscall(dly_tsk(100));
/* ХåեƤɤ߽Ф */
memset(buf, 0, sizeof(buf));
for (i=0;; i++)
{
result = serial_rea_dat(USER_PORTID, &buf[i], 1);
if (result == 1)
{
if (buf[i] == '\r') break;
}
else
{
syslog(LOG_EMERG, "error serial_rea_dat() code=%d", result);
}
}
syslog(LOG_NOTICE, "Recv:%s", buf);
}
/* ޥɥ⡼ɤ */
syslog(LOG_NOTICE, "Send: %s", CMD_MODE);
result = serial_wri_dat(USER_PORTID, CMD_MODE, sizeof(CMD_MODE)-1);
if (result != sizeof(CMD_MODE)-1)
{
syslog(LOG_EMERG, "error serial_wri_dat() code=%d", result);
}
syslog(LOG_NOTICE, "Send-");
/* */
memset(buf, 0, sizeof(buf));
for (i=0;; i++)
{
result = serial_rea_dat(USER_PORTID, &buf[i], 1);
if (result == 1)
{
if (buf[i] == '\r') break;
}
else
{
syslog(LOG_EMERG, "error serial_rea_dat() code=%d", result);
}
}
syslog(LOG_NOTICE, "Recv:%s", buf);
/* Mifare⡼ɤ */
syslog(LOG_NOTICE, "Send: %s", MIFARE_MODE);
result = serial_wri_dat(USER_PORTID, MIFARE_MODE, sizeof(MIFARE_MODE)-1);
if (result != sizeof(MIFARE_MODE)-1)
{
syslog(LOG_EMERG, "error serial_wri_dat() code=%d", result);
}
syslog(LOG_NOTICE, "Send-");
/* */
memset(buf, 0, sizeof(buf));
for (i=0;; i++)
{
result = serial_rea_dat(USER_PORTID, &buf[i], 1);
if (result == 1)
{
if (buf[i] == '\r') break;
}
else
{
syslog(LOG_EMERG, "error serial_rea_dat() code=%d", result);
}
}
syslog(LOG_NOTICE, "Recv:%s", buf);
for (;;)
{
/* ޥɤ */
syslog(LOG_NOTICE, "Send: %s", MIFARE_SCAN);
result = serial_wri_dat(USER_PORTID, MIFARE_SCAN, sizeof(MIFARE_SCAN)-1);
if (result != sizeof(MIFARE_SCAN)-1)
{
syslog(LOG_EMERG, "error serial_wri_dat() code=%d", result);
}
syslog(LOG_NOTICE, "Send-");
/* */
memset(buf, 0, sizeof(buf));
for (i=0;; i++)
{
result = serial_rea_dat(USER_PORTID, &buf[i], 1);
if (result == 1)
{
if (buf[i] == '\r') break;
}
else
{
syslog(LOG_EMERG, "error serial_rea_dat() code=%d", result);
}
}
buf[i] = 0;
syslog(LOG_NOTICE, "Recv:%s", buf);
/* 0.5ô */
syscall(dly_tsk(500));
}
}
}