위 사진을 보시면 알다싶이 2.2% full 이라고 쓰여 있습니다. program도 그럼고 data에서도 그렇고요.
atmega 128을 사용 하는데..
왜 full 이란 경고가 뜨는 거죠?
막상 isp로 집어넣으면 집어 넣어지던데.. 이유를 모르겠네요.
궁금증을 해결해주세요
그리고 hex 파일은 최대 128kb까지 가능한건가요? flash 메모리용량이 128kb라고 적혀 있던데요..
하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.
5개의 경고 메세지는 이와 별개로 지역변수 선언후 사용하지 않았거나, 형변환이 제대로 안되었거나..
이런게 경고로 뜬것이며, 경고 메세지 발생한 곳을 보시면 됩니다.
;답변------
mega128은 128KB의 프로그램 메모리 공간이 있는데, 님께서 작성하신 프로그램은 128KB의 2.2%인 약 2.6KB 라는 의미입니다.
아직도, 98%정도 더 프로그램 할수 있는 공간이 있다는 의미입니다.
flash 메모리 128kb 중에 2.2%사용하고 있다는 뜻인가요? 예를 들면 하드가 100 기가중에 10기가를 사용 하고 있으면 (10 %full) 이렇게 표시 되는걸 얘기 한는 건가요?.
program 하고 data는 어떤것을 의미하는지도 알려주시면 감사합니다
;답변-----
조금은 복잡한 이야기이긴 한데, 프로그램을 컴파일하는 과정에서 컴파일러는 프로그램과 데이터를 분리합니다.
다시 말해서 printf("hello world!")를 프로그램 여기저기에서 사용했다고 했을때, 매번 "hello world"라는 문자를 프로그램으로 컴파일 하면 프로그램 메모리가 많이 낭비되겠죠? 그래서 똑똑한 컴파일러는 이것을 하나의 영역에 잡아두고, 프로그램내에서 공용으로 사용하게 합니다.
그때 잡아두는 영역이 data 영역이라고 생각하시면 됩니다.
자세한 내용은 좀더 공부를 하셔야 할것 같습니다.