voliate 란 휘발성의 즉 ram에 강제적으로 저장공간을 만들거나 아니면 컴파일러 임의로 최적화 해서는 안되는 변수에 사용하는 것으로 알고 있습니다.
아래에 voliate에 대해서 나온 내용에 대해서 의심이 생겨서 이글을 올리게 되었는데 자세히 알고 계신는 분들은 댓글 좀 부탁드립니다.
아래에 voliate에 대해서 나온 내용에 대해서 의심이 생겨서 이글을 올리게 되었는데 자세히 알고 계신는 분들은 댓글 좀 부탁드립니다.
하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.
번호 | 분류 | 제목 | 글쓴이 | 조회 수 | 날짜 |
---|---|---|---|---|---|
2007 | 자유주제 | HOT물이 덜든 말8 | 최해리 | 1556 | 2010.11.09 |
2006 | 자유주제 | HOT납이라는게...14 | 최해리 | 4128 | 2010.11.09 |
2005 | 자유주제 | HOT납이란게..2 | 운이 | 4379 | 2010.11.09 |
2004 | 자유주제 | HOTHDMI PCB 설계 가이드라인_전자엔지니어제공2 | 가디언입니다 | 6382 | 2010.11.09 |
2003 | 자유주제 | HOT라인트레이서 소스2 | 조의련 | 7952 | 2010.11.07 |
2002 | 자유주제 | HOT여러분은 어떤 작품을 하시나요??4 | partangel | 4532 | 2010.11.07 |
2001 | 자유주제 | HOT가입은 오래전에 했는데, 납이 있어야 한다길래 ㅎㅎ9 | 승아 | 5354 | 2010.11.06 |
2000 | 자유주제 | HOT삼성소프트웨어맴버쉽 설명회를 듣고나서...3 | 꼬꼴리 | 4250 | 2010.11.04 |
1999 | 자유주제 | HOT죄송 저도 납이...ㅠㅠ8 | 클락 | 4608 | 2010.11.04 |
1998 | 자유주제 | HOT납(ㅈㅅ)12 | 효연 | 5323 | 2010.11.04 |
1997 | 자유주제 | HOT혹시 삼성소프트웨어멤버쉽 아시거나 지원해보신분??2 | 강정훈 | 12030 | 2010.11.03 |
1996 | 자유주제 | HOTPADS Layout 어렵네요^_^;;4 | snappyzer0 | 4680 | 2010.11.03 |
1995 | 자유주제 | HOT정회원이 되면 열공하겠습니다..5 | 최선을다해서.. | 4284 | 2010.11.03 |
1994 | 자유주제 | HOT오늘가입했어요!!!!!!^^*7 | RAN | 5598 | 2010.11.03 |
1993 | 자유주제 | HOT오랜만에 들어와서 이곳 저곳 돌아다닙니다.~4 | 12몽키 | 4367 | 2010.11.03 |
1992 | 자유주제 | HOTDC MOTOR 고수님들 도움 부탁해요7 | 광대역 | 5052 | 2010.11.02 |
1991 | 자유주제 | HOT숙련자님들 조언 좀 부탁드립니다..4 | 동네청년 | 4341 | 2010.11.02 |
1990 | 자유주제 | HOT창 바뀔때마다.. 팝업뜨는거 ..어떻게 없앨방법 없나요?4 | 기즈모 | 4995 | 2010.11.02 |
1989 | 자유주제 | HOT기술 습득에 도움이 될 site 소개합니다8 | sancho | 4988 | 2010.11.02 |
1988 | 자유주제 | HOT웃음으로 잠시 여유를~~9 | innercase | 1676 | 2010.11.01 |
<임베디드홀릭>이라는 카페에 주인장이 volatile에 대하여 아주 친절하고 자세하게 설명해 놓은 것이 있습니다.
한번 가셔서 찾아보시기 바랍니다.
AVR-GCC 에서는 인터럽트 서비스 루틴 내에 사용된 전역 변수와 외부 디바이스의 하드웨어 주소 등에 사용되는 전역 변수들은 레지스터가 아닌 메모리, 메모리 중에서도 어떤 상황으로부터라도 독립적일 수 있는 별도의 메모리 영역으로 할당 될 수 있도록 변수 앞에 volatile 이란 키워드를 붙이도록 규정하고 있습니다. 따라서, GCC 를 AVR 용으로 변환시킨 AVR-GCC 에서도 인터럽트 서비스 루틴 내 사용되는 전역 변수 앞에는 반드시 volatile 을 사용하도록 되어 있다.
그러나, 다른 상용 컴파일러에서는 이럴 필요가 전혀 없습니다. 왜냐하면, 우리가 개발하고 있는 건 단 하나의 태스크(Task)로 구성되어 있는 Firmware 이기 때문에 스케줄링이 되지 않기 때문입니다. 즉, 한번 메모리에 로딩되면 전원이 꺼질 때까지 그 주소 값을 유지할 수가 있다.
더불어 volatile 선언은 가급적 하지 않는 것이 메모리 효율성을 높이는데 도움이 됩니다. 왜냐하면 volatile 로 선언된 메모리 영역은 다른 태스크(Task)에 의해 방해받지 않도록 독립 공간으로 할당되기 때문에, volatile 타입의 변수 선언이 많이 지게 되면 그 만큼 다른 태스크에 할당될 메모리 공간이 줄어들게 되기 때문입니다.
[출처] [뻔뻔] 제2강 : 어떤 컴파일러를 사용해야 하나요? (당근이의 AVR 갖구 놀기) |작성자 뻔뻔강사
좋은 자료 감사합니다.