기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요


질문하나 드립니다. 


최초 부팅시 특정영역을 읽어서 그에 맞는 액션을 해야 합니다 . ( 쓰기도 해야합니다. )


읽는곳은 부팅시 초기에 실행되는 디바이스 드라이버입니다. 


파일시스템이 마운트되기 전에 실행되는 놈이라 뭔가에다가 써야하는데 ( 비휘발성 메모리 ) 

어떻게 해야하는지, 방법이 있는지 궁금합니다. ( EEPROM 같은 외부메모리가 없습니다...ㅠㅠ)  


env 영역도 고려해봤는데 드라이버에서 어떻게 써야할지 모르겠고.. 


혹시 아시는분 있으시면 답변부탁드립니다.



고도리

2022.08.15 23:15:25
*.170.154.90

1. 부트로더서 하는 방법이 있습니다.

특정 영역은 OS에서 virtual memory로 mapping하지 않도록 DMA영역이나, 실제 kernel이 인식하는 메모리 영역을 특정영역은 빼고 잡으면 됩니다.


예를 들어, 256M 메모리가 있다라고 가정할 때

끝에 56M를 쓰지 않고, 200M만 커널이 인식하도록 하면 됩니다.


그 후에 커널서 56M 영역을 DMA 영역으로 매핑해서 사용할 수 있습니다.

커널이든 user space에서 mmap을 쓰던....


2. 디바이스 드라이버의 경우는 모듈로 로딩할 때 filesystem에서 읽어서 하기 때문에 filesystem을 쓰기는 쉽지 않습니다.


보통 이런 경우는 ubuntu나 pc용 linux가 부팅하는 방식대로, init ram disk를 이용해서 메모리로 로딩 후에 부팅이 끝나면 "할일하고" 실제 rootfs로 change rootfs를 해서 처리하는 방법이 있습니다.


--------------------------------

본문의 내용을 제가 이해를 제대로 못했을 수도 있지만, 방법은 있을거라고 보여집니다.


좀 더 자세하게 정리해서 써 주시면 자세하게 답변 드리겠습니다.


하하호호하하

2022.08.17 09:21:30
*.134.129.225

답변 정말 감사드립니다. 


조금더 정확하게 말하면 LCD 2종 모두 사용하려고 합니다.  ( 어떤 LCD가 연결되는지는 알수가 없음 )


최초 부팅 -> LCD driver에서 LCD ID읽음( 특정 영역에 설정이 되어있으면 pass)  -> 특정영역에 저장 -> 재부팅 -> 특정영역을 읽어 해당하는 LCD로 설정 -> 부팅 


위의 시나리오로 가려고 하는데 특정영역을 어떻게 사용해야 하는지요? 

( 재부팅 이유는 chip에 좀 문제가 있어 ID를 읽고나면 화면이 안보이는 버그가 있어 재부팅을 합니다. ) 


잘 설명이 되었는지 모르겠네요... 

고도리

2022.08.17 21:57:51
*.170.154.90

추천
1
비추천
0

AP와 storage에 따라 이래저래 다를 듯 합니다.


storage가 eMMC의 경우는 맨 앞에 boot영역 바로 다음에 있는 block 1개 정도를 할당해서 데이터를 써 넣으면 될거고요.


만일, AP 내부에 SRAM영역 혹은 사용하지 않는 register가 있다라고 하면, 해당 영역 중 안쓰는 영역에 표시하고 reset을 걸면 될 듯 합니다.


보통은 위의 2 경우는 bootloader에서도 처리가 되는 부분이니, 큰 이슈는 없을겁니다.

저장해야 하는 데이터 량이 그다지 많지는 않을 듯 해서요.

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
6368 Apple TV 온보드 메모리 변경 가능할까요? [1] 당그니 2011-01-20 94728
6367 android pwm backlight 밝기 제어 [4] 김태영 2011-07-28 54850
6366 com.google.android.maps.jar는 어디서 얻는 것인가요??? [2] 천동이 2014-09-02 52285
6365 USB bluetooth dongle on jellybean [4] 신현호 2014-02-21 50309
6364 우분투 리눅스 ip 변경 도중에 "No such process" [5] 이세종 2009-04-01 45824
6363 OpenOCD 0.2.0 [1] 김광준 2009-10-24 44579
6362 [질문]memset, mmap, memcpy에 대해서 질문 있습니다. [5] 이태간 2007-05-22 44540
6361 libpcap 설치 [1] Apostasy 2011-04-12 43719
6360 램디스크 파일 시스템 만들기 [4] sinwho 2015-08-19 43326
6359 USB 포팅관련 질문드립니다. [1] 김승한 2010-01-07 33304
6358 android에 libusb porting 해보신 분?? [2] 꿈의사람 2014-02-13 29616
6357 오드로이드 배터리 패치 문의 [1] 이종문 2010-07-01 29041
6356 ODROID-T 2.2 셧다운 후 부팅이 안됩니다. [2] shkim 2010-10-02 26871
6355 오드로이드 디버깅이 안되네요... [2] 현쓰 2010-02-01 26581
6354 [질문]wince 이미지 다운로드시 에러 [3] 이태간 2008-04-06 26265
6353 slide event에 따른 landscape & portrait mode 전환 [1] 나영찬 2010-03-25 24603
6352 Andorid ALSA에 관해서...2 [1] 꺼북이 2011-05-18 24089
6351 wm1811 드라이버를 찾아요 [9] 김민욱 2016-11-01 18751
6350 이더넷 핀에서 값을 읽어 오고 싶은데요... [2] rubio 2013-07-09 13050
6349 usb host api 가 리눅스단에서도 사용가능한가요? [1] biokk 2014-02-07 11392

사용자 로그인