2010년 5월 11일 화요일

tinyos 상에서의 coding시 문제점 #1

inline assembly의 경우 printf문을 통해 배열에 할당된 값 확인이 가능하다. 하지만 값을 바로 printf문을 해볼경우 값이 분명히 sensor에 올라가 있음에도 불구하고 값은 엉터리 값이 나오는 경우가 많다. 그럴경우 원인을 찾기가 너무 힘이 든다.

또한 MSP430 hardware multiplication의 경우 값을 add로 &X13A에 접근시 값을 읽어오지 못하는 오류가 있다. 따라서 addc를 통해 값을 읽어오도록 수정한다.

1X1 3X3의 경우 한번의 곱셈만 수행해서 그런지 몰라도 &0x13A를 저장할때 값이 안나온다. 따라서 mov와 addc를 통해 값을 얻을수 있다. 3X3의 경우 mov를 해도 현재의 register의 값에 변경이 없으니 상관없지만 1X1의 경우 register의 값을 확인해야 하므로 addc가 적합하다.

또한 memory 로 부터 값을 불러올때 만약 r4~r9에 불러오게 된다면 r10 ~ r15는 불통이 되어 버리는 버그가 있다. 따라서 이러한 문제점을 해결하기 위해선 r10~r15에 값을 불러오며 r4~r9에서 값을 계산하도록 설계한다.

댓글 없음:

댓글 쓰기