embeded/Cortex-M3 Ti2013. 2. 5. 10:44
unsigned 를 int로 변경할때 코드상의 문제였나 해서 테스트를 해봤는데 -_-
헐.. 머야 이거.. 컴파일러 특성인가?

int t1,t2,t3,t4;
unsigned char t9=-1;

t1 = t9;
t2 = (char)t9;
t3 = (int)t9;
t4 = (int)(char)t9;
		
printf("%d %d %d %d",t1,t2,t3,t4);
//255,255,255,255

아무튼, cortex-m3 + keil 에서는 일단
음수일 경우(MSB가 0x80 이면)
if(t9 & 0x80) t1 = t9 | 0xFFFFFF00;
else t1 = t9;

이런식으로 구현해서 써야 할 듯 -_-

2013/02/04 - [Programming/C++ / STL] - unsigned char -> int 변환 주의사항

---
추가로 테스트 해보니 unsigned char가 아닌 char 일 경우에도
up convert시 음수에 대해서 제대로 키워주지 못하는 문제가 있다.
KEIL 컴파일러 문제이려나? 

'embeded > Cortex-M3 Ti' 카테고리의 다른 글

LM3S1968과 H-JTAG(wiggler)  (0) 2013.06.28
cortex-m3 JTAG / X-LinkEx 1.1  (0) 2013.06.11
LM3S - FlashProgram()  (0) 2012.11.06
TI Stellaris LM3S 시리즈 ICDI가 사라졌어요!!!  (0) 2012.09.22
stellarisware - UARTStdioInit()  (4) 2012.07.23
Posted by 구차니