2017-10-05 15 views
0

Contiki 응용 프로그램을 개발 중이며 ROM 메모리가 부족합니다. 나는 작은 파일을 (32 바이트) 작성하는 컨티키 파일 시스템 (CFS)을 사용하려면, 그래서 다음 코드를 추가합니다cfs_write()가 너무 많은 ROM 메모리를 소비하는 이유는 무엇입니까?

fd_write = cfs_open(filename, CFS_WRITE); 
n = cfs_write(fd_write, message, sizeof(message)); //Message size is 32 bytes 
cfs_close(fd_write); 

문제가 cfs_write이 (있다) (3210)에 의해 텍스트 섹션을 증가 바이트.) (cfs_write를 제거 코드 크기이기 때문에 나는 그것에 대해 찾습니다) (cfs_write

text data bss dec hex filename 
27122 114 4710 31946 7cca coffee-example.sky 

공지 사항 (3210)에 의해 텍스트 섹션을 증가 :

text data bss dec hex filename 
    23912 114 4710 28736 7040 coffee-example.sky 

및 cfs_write와()의 코드 크기가

바이트. cfs_write()가 .text 섹션을 그렇게 많이 늘리는 이유는 무엇입니까? .text 섹션에서 cfs_write()의 크기를 줄이려면 어떻게해야합니까? cfs_write() 자체에 큰 함수가 아닙니다

답변

2

동안

안부,

세르지오 디아즈, 다른 함수를 호출한다. 응용 프로그램 코드에서 cfs_write()을 사용하면이 모든 다른 기능도 실행 파일에 링크됩니다.

예를 들어, CFS의 Coffee 구현 (여러 구현이 있음)을 사용하는 경우 merge_log()을 호출합니다. 그러면 차례로 여러 함수가 호출됩니다.

CFS 코드는 이미 간결한 이진 코드를 염두에두고 개발 되었기 때문에이 용도를 쉽게 최적화 할 수있는 방법은 없습니다.