MSP430 컴파일러의 문제였습니다.
unsigned long 타입을 shift 연산을 할 때 오류가 발생을 하여서 버퍼 어드레스가 엉뚱한 곳을 지시하였습니다.
아래와 같이 코드 수정하였더니 정상적으로 동작하네요.
빠른 대응에 대해 감사합니다~.
unsigned int wiz_write_buf_TX(unsigned int addrbsb, unsigned int cmd, unsigned char* buf,unsigned int len)
{
char str[64];
unsigned int idx = 0;
if(len == 0) printf("Unexpected2 length 0\r\n");
//IINCHIP_ISR_DISABLE(); //
_DINT();
IINCHIP_CSoff(); // CS=0, SPI start
IINCHIP_SpiSendData((addrbsb & 0xFF00)>> 8);// Address byte 1
IINCHIP_SpiSendData((addrbsb & 0x00FF)>> 0);// Address byte 2
IINCHIP_SpiSendData(cmd + 4);// Data write command and Write data length 1
sprintf(str, "Addr & Cmd >> %04X, %04X\n", addrbsb, cmd);
Print_rs232(str);
for(idx = 0; idx < len; idx++) // Write data in loop
{
IINCHIP_SpiSendData(buf[idx]);
}
IINCHIP_CSon(); // CS=1, SPI end
//IINCHIP_ISR_ENABLE(); //
_EINT(); // Interrupt Service Routine Enable
return len;
}