Example_SW_TJA1145プログラムを使用しています。サンプルプログラムのChangeToSleepOperation関数を使ってスリープモードに入ると、デバッグ中にPOイベント情報が発生することがわかりました。スリープモードに入ろうとするたびに、POイベント情報によってブロックされてしまいます。
こんにちは、
ウェイクアップイベントが有効になっていない、または保留中のイベント情報がクリアされていないため、スリープモードへの移行が保護されている可能性があります。詳細については、 AH1903 (機密保持契約に基づくセキュアファイル)の3.2.4章および5.3.2章をご覧ください。
BRs、トーマス
以下は私の SPI_Send プログラムです。このプログラムに何か問題がありますか?
NXP_UJA11XX_Error_Code_t SPI_Send(Byte* data, NXP_UJA11XX_SPI_Msg_Length_t length, Byte mask, NXP_UJA11XX_Access_t type) {
Byte Txdata[2] = {0};
Byte Rxdata[2] = {0};
Byte ConfirmTxdata[2] = {0};
Byte ConfirmRxdata[2] = {0};
uint16_t sendlen = 0;
uint32_t timeout = 1000000;
Txdata[0] = data[0];//发送或读取的地址
ConfirmTxdata[0] = data[0] | NXP_UJA11XX_READ;
if(NXP_UJA11XX_SPI_MSG_LENGTH_16 == length)
{
sendlen = 2;//要发送的Byte的数量
switch(type)
{
case NXP_UJA11XX_WRITE:
{
Txdata[1] = data[1];//发送的数据
SPI3_Send(Txdata, Rxdata, sendlen, timeout);//发送地址和数据
}
break;
case NXP_UJA11XX_READ:
{
SPI3_Send(Txdata, Rxdata, sendlen, timeout);//发送地址读取数据
}
break;
case NXP_UJA11XX_INTERRUPT:
{
SPI3_Send(Txdata, Rxdata, sendlen, timeout);//发送地址读取数据
}
break;
default:
return NXP_UJA11XX_ERROR_SPI_HW_FAIL;
}
//对读取或写入的数据进行验证
switch(type)
{
case NXP_UJA11XX_WRITE:
{
SPI3_Send(ConfirmTxdata, ConfirmRxdata, sendlen, timeout);//读取写入的数据
if(ConfirmRxdata[1] == data[1])//读取和写入数据一致
{
return NXP_UJA11XX_SUCCESS;
}
else if( (ConfirmRxdata[0] == 0x00 && ConfirmRxdata[1] == 0x00)||
(ConfirmRxdata[0] == 0xFF && ConfirmRxdata[1] == 0xff) )
{
return NXP_UJA11XX_ERROR_SPI_HW_FAIL;
}
else
{
return NXP_UJA11XX_ERROR_WRITE_FAIL;
}
}
break;
case NXP_UJA11XX_READ:
{
SPI3_Send(ConfirmTxdata, ConfirmRxdata, sendlen, timeout);//再次读取数据
if(ConfirmRxdata[1] == Rxdata[1])//两次读取的数据相同
{
data[1] = Rxdata[1];//传回读取到的数据
return NXP_UJA11XX_SUCCESS;
}
else
{
return NXP_UJA11XX_ERROR_READ_FAIL;
}
}
break;
case NXP_UJA11XX_INTERRUPT:
{
SPI3_Send(ConfirmTxdata, ConfirmRxdata, sendlen, timeout);//再次读取数据
if( (Rxdata[1] & mask) != 0 )
{
return NXP_UJA11XX_ERROR_WRITE_FAIL;
}
}
break;
default:
return NXP_UJA11XX_ERROR_SPI_HW_FAIL;
}
}
else//消息长度不为16bit
{
}
return NXP_UJA11XX_SUCCESS;
}