간단하게 요약하겠다.
환경 : WIN7(64BIT), DSP28335(보급형모델_SYNCWORKS), CCS5, SDS100i(syncworkds usb emulator)
문제점 :
RS-232인터페이스를 이용하여 가속도 센서의 데이터를 문자열로 받은 후에, float형으로 변환 및 연산 후 다시 PC로 데이터를 보낼때
sprintf(str,"%f", float형 변수);
의 소스코드에서 알 수 없는 에러가 발생한다.
해결방안:
1.
project explorer에서 현재 프로젝트에 오른쪽 클릭으로 properties 창을 연다음 위의 부분과 같이 설정해준다.
2. 28335_RAM_lnk.cmd 또는 (28335_flash_lnk.cmd)의 SECTIONS 의 .stack의 램의 영역의 사이즈를 늘려준다. 즉 큰 영역의 램영역으로 수정하면된다. (여기선 RAML1)
SECTIONS
{
/* Allocate program areas: */
codestart : > BEGIN PAGE = 0
ramfuncs : LOAD = FLASHC,
RUN = RAML0,
LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
PAGE = 0
.cinit : > FLASHH, PAGE = 0
.pinit : > FLASHG, PAGE = 0
.text : > FLASHD, PAGE = 0 //FLASHD|FLASHE
csmpasswds : > CSM_PWL PAGE = 0
csm_rsvd : > CSM_RSVD PAGE = 0
/* Allocate uninitalized data sections: */
.stack : > RAML1, PAGE = 1
.ebss : > RAML1, PAGE = 1
// .ebss : > FLASHB PAGE = 1
.esysmem : > RAMM1, PAGE = 1
3. 해결후 실행 완료
해결후 잘 실행 됨을 알 수 있다.
'연구&개발 > DSP28335' 카테고리의 다른 글
DSP sprintf 문제시 (0) | 2012.11.20 |
---|---|
DSP28335 - SCI -A,B,C 인터럽트 동작허용시 주의할점. (1) | 2012.10.25 |
DSP28335 - ILLEGAL_ISR 에러 (1) | 2012.10.25 |