본문 바로가기

연구&개발/DSP28335

DSP28335 float to string 문제해결

간단하게 요약하겠다.

환경 : 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' 카테고리의 다른 글