안녕하세요,
케일컴파일러에서 왜 이런에라가 납닊?
error C249 : 'PDATA' : SEGMENT TOO LARGE
고수님들의 도움이 필요합니다.
하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.
번호 | 분류 | 제목 | 글쓴이 | 조회 수 | 날짜 |
---|---|---|---|---|---|
106 | 펌웨어 & 코딩언어 | 객체지향프로그래밍4 | 끼르 | 323 | 2017.06.19 |
105 | 펌웨어 & 코딩언어 | 적외선 센서에 대한 질문입니다.3 | jaemi2010 | 336 | 2016.02.25 |
104 | 펌웨어 & 코딩언어 | 구조체 포인터 캐스팅??1 | 기다려줄래 | 309 | 2015.07.10 |
103 | 펌웨어 & 코딩언어 | matlab에서 작성된 m file을 c++로 변환하고 싶습니다.1 | 마린스토리 | 278 | 2014.04.28 |
102 | 펌웨어 & 코딩언어 | HOTC언어로된 MPPT제어 프로그램 Code Vision 으로 변환하기 | 찰떡젤리 | 574 | 2014.04.21 |
101 | 펌웨어 & 코딩언어 | C 명령어 좀 상세히 알고 싶습니다1 | jsp | 394 | 2014.04.03 |
100 | 펌웨어 & 코딩언어 | HOT피보나치 수열..2 | aNitMotD | 540 | 2013.10.30 |
99 | 펌웨어 & 코딩언어 | HOT1D FEM coding 문제 ..원하는 답이 안나와요 | 수치해석미쵸 | 496 | 2013.09.29 |
98 | 펌웨어 & 코딩언어 | HOTPIC 16F628A와 CCSC 기반의 프로그래밍 질문입니다. 제발 도와주세요ㅠㅠ | 신천동주민 | 467 | 2013.09.24 |
97 | 펌웨어 & 코딩언어 | HOT비주얼베이직 연산 및 줄바꿈에 대한 질문입니다.1 | 원할머니보고쌈 | 672 | 2012.11.07 |
96 | 펌웨어 & 코딩언어 | c언어 질문인데요..3 | 하하하하히 | 385 | 2012.09.10 |
95 | 펌웨어 & 코딩언어 | HOTC언어제어3 | tbwnaoslwj1 | 645 | 2012.08.09 |
94 | 펌웨어 & 코딩언어 | HOTmatlab 질문입니다.. | 소다수1 | 403 | 2012.06.06 |
93 | 펌웨어 & 코딩언어 | HOT-(C언어(함수호출)로 만든 크리스*마스*트리*프로그램)-1 | 리종순2 | 1460 | 2011.12.14 |
92 | 펌웨어 & 코딩언어 | HOT외부 SRAM 컨트롤하는 것좀 도와주세요.1 | 쩡무 | 1366 | 2011.11.15 |
91 | 펌웨어 & 코딩언어 | HOTunikey program 수정 | jjhuem | 1107 | 2011.10.11 |
90 | 펌웨어 & 코딩언어 | HOTAtmega128에서 Reset 하는 방법 중 궁금한 점이 있습니다!!!4 | 공돌이의꿈 | 3145 | 2011.06.21 |
89 | 펌웨어 & 코딩언어 | HOTC언어랑 matlab의 차이?1 | 약곰탱이 | 3518 | 2011.06.02 |
88 | 펌웨어 & 코딩언어 | HOTVHDL 전가산기 설계 질문입니다. | 나트륨 | 2976 | 2011.03.26 |
87 | 펌웨어 & 코딩언어 | HOTC 배열이용해서 엑셀 데이터 끌어오는 방법???2 | 꼬꼴리 | 2115 | 2011.03.24 |
사용하고 계시는 프로세서 모델의 ram과 flash 용량을 확인하세요.
배열로 잡고 있거나 문자열이 너무 크지 않은지 확인해보세요.
pdata라면 flash 영역일거 같군요. 8051 안한지가 너무 오래되었나 보군요.
관련하여 첨부파일 올립니다.
에러 메시지 대로 PDATA가 너무 큰거입니다.
프로그램에서 변수나 상수를 선언해서 쓰고 컴파일하면 종류에 따라 적절한 segment라는 메모리 영역에 할당됩니다. 어떤 선언이 어떤 segment에 들어가는지를 보려면 c 컴파일러 메뉴를 보든지 컴파일 후 생기는 list 혹은 map 파일(이건 컴파일러 마다 달라요)을 열어보든지 컴파일한 어셈블러 파일을 열어보던지 하면 알 수 있습니다.
해결책은 해당 변수의 숫자를 줄이던지 줄일 수 없을 때는 segment에 해당하는 메모리가 큰 마이컴을 사용하던지 하면 되는데 간혹 마이컴의 메모리 크기와 상관없이
프로그램에서 크기를 정하는 경우도 있습니다. 컴파일러 메뉴얼을 찾아보면 segment 종류,크기를 설정하는 방법과 들어있는 file을 찾을 수 있을겁니다.
이경우는 해당 부분을 찾아서 고치면 되지요