blueecho's collection

누군가에게 "당신은 무엇을 잘하십니까?"라는 질문을 들었을때 바로 대답할것을 만들어보자~!!
        
분류 전체보기 (267)
NeWs (21)
배움생활 (107)
취미생활 (118)
끄적끄적 (5)
인생설계 (12)
Wish list (4)
Fedora 지름신 연구실 생활 연구실생활 영화감상 솔카당 사진 일본소설 자전거 리눅스
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
블로그 이동하였습니다.

 

MPSoC에 해당하는 글 3개
2010.07.26   OpenRISC : cygwin용modelsim 환경파일입니다. 
2010.07.26   링커 스크립트 
2010.07.09   간만에 책구입~ 4

  OpenRISC : cygwin용modelsim 환경파일입니다. | 2010. 7. 26. 17:01 | 배움생활/외부스터디   
MPSoC스터디 모임에서 만들었던 해당 파일입니다.
해당 파일은 opencore에서 배포한 vmware이미지에서 추출하였습니다.
사이트가 가끔 죽어서 혹시나 해서 백업 해놓습니다.


우선은 기본조건으로 cygwin과 modelSIM(이외의 시뮬레이터는 없는 관계로...)이 설치되었다는 가정하에 시작합니다.

해당 모델심 프로그램들(vsim,vlog)의 path는 환경변수에 이미 저장되어있다고 가정합니다.(설치하실때 path추가 물어보는 부분에서 no하지 않으셨다면 이상없습니다.)


아... 그리고 압축파일내에 .bashrc가 들어있으니 자신만의 환경을 가지신 분들은 다른 폴더에서 풀어서 path부분만 추가하시면 됩니다.

기본적으로 제가 만든 .bashrc에서는 or32-elf폴더가 사용자의 최상위 폴더(~/)에 있는 것으로 가정하였습니다. (압축파일을 해당 폴더에서 풀어버리시면 문제없습니다.)

또하나, vi의 경우 gvim.exe를 사용합니다. gvim 7.2를 기본폴더에 설치하셨다면 cygwin에서 gvim사용하시게 됩니다. (불편하신 분은 alias vi=~~~~~부분을 지우시면 됩니다.)


사용법>

1. 우선 압축파일을 사용자의 최상의 폴더로 복사합니다. (아마 c:\cygwin\home\[사용자명] 일껍니다.)

2. 압축해제후 MOF_~~~.sh를 실행합니다. (툴체인 및 or1ksim 그리고 리눅스 커널등등을 받아서 설치합니다.)

2-1. 식사나 휴식을 취하세요.^^ (조금 걸리네요...)

3. test_or1200/sim에 들어가셔서 ./run.sh를 실행하시면 waveform까지 떠야 정상입니다. (rtl 폴더의 파일을 사용합니다)

3-1. 혹시 우분투에 깔려있던대로 실행을 하시려면 ./run.sh old 로 실행하시면 됩니다. (rtl_old 폴더의 파일을 사용합니다.)

3-2.  ./run2.sh의 경우는 ./run.sh와 마찬가지로 ./run2.sh old로 실행하실 경우 rtl_old폴더의 파일을 사용하게 됩니다. 대신 쉘파일 뒤에 웨이브폼으로 보고싶은 파형의 모듈을 지정해 주면 해당 모듈의 파형을 열어줍니다. ex) ./run2.sh or1200_genpc ---> or1200_genpc 모듈의 파형을 열어줍니다.

3-3. 파형을 지정후 시뮬레이션을 하시려면 해당 스크립트 파일을 열으신후 vsim ~~~ 에서 -do 이후에 있는 부분을 지워주시면 됩니다.

3-4. 파형은 hex 포멧으로 열게 되어있습니다.

4. 크로스컴파일의 경우 제대로 동작하는지 확인하려면 test_or1200/sw폴더로 들어가셔서 make all을 해보시면 됩니다. 문제가 없다면 sim폴더에 memory.txt가 정상적으로 만들어져야 합니다.


수정 및 추가 부분>

1. rtl 폴더에 있는 soc.v 파일은 기존 우분투 이미지에서 추출한 soc.v에서 or1200이하 부분을 떼어낸 파일입니다. rtl_old에 있는 soc.v파일과는 다릅니다.

2. bench 폴더에 있는 CPUboard_tb.v 파일에서 $finish() 앞에 $stop()을 추가하였습니다.

3. 해당 보드 구현 파일에 설정되어있는대로 or1200_define.v에 있는 wishbone WB_B3부분을 활성화 시켰습니다.

4. sw폴더에서 생성하는 memory.txt파일의 생성장소를 sim폴더로 수정하였습니다.

5. 다른부분이 있을지도 모르겠습니다만....(적어놓은게 이정도네요..ㅠ_ㅠ) 아마 이게 다일 껍니다. (엔지니어가 아마????)


etc.>

1. 귀찮아서 더 이상은 못 만들겠습니다. make잘 쓰시는 분이나 쉘스크립트 잘 짜시는 분의 도움 부탁드립니다.

2. waveform window의 설정을 깨끗하게 해주시는 분이 계시다면 감사하겠습니다만... 그정도까지는 안해도 되겠죠? ^^;

3. 다되어있는 파일의 경우 50MB가 넘네요. 스크립트와 중요파일만 올려드립니다. 혹시 전체 파일 받고 싶으신 분은 따로 연락주세요.

4. 문제있는 부분이 있다면 댓글이나 메일 부탁드립니다.

4-1 현재 완벽하게 같다는 부분은 확인하지 못하였습니다. simulation에 문제가 있을수도 있으니 예전 파형을 보고 싶으신 분은 ./run.sh old 또는 ./run2.sh old 로 실행해 주세요.

5.  폴더명 변경의 경우 bench와 rtl 또는 rtl_old의 이름을 변경시에는 스크립트도 같이 변경해주시면 됩니다.

6. 아.. 모델심이 유료툴이므로 못구하시는 분들은 Iverilog와 Gtkwave를 사용하셔도 됩니다만 만들어놓은 스크립트가 modelsim기반입니다.

혹시 문제가 되는 분이 있으시다면 연락부탁드립니다. 해당 프로그램으로 수정하죠.. ^^;;;

7. 다른 컴퓨터에서 확인하지는 못했습니다. 집에 있는 컴퓨터에 재설치후 만들고 압축한 것이라서 혹시 문제있으면 연락부탁드립니다.


ps. 머리가 나빠서 얼레벌레 시간이 꽤 걸렸네요. 다른 분들이시라면 금방하셨을텐데... ㅠ_ㅠ

'배움생활 > 외부스터디' 카테고리의 다른 글

uC/OS-III가 Free네요.  (0) 2011.08.26


  링커 스크립트 | 2010. 7. 26. 16:53 | 배움생활/SoC   
링커스크립트 관련 박상호님께서  MPSoC스터디 모임 게시판에 올려주신 내용입니다.


토요일 스터디 모임에서 잠시나마 소개(?)를 했었던 링커 스크립트에 대해서 간략히 요약을 해 드리겠습니다.

링커 스크립트는 한마디로 말하면 object파일들의 각 영역에 대한 재정렬을 하는 스크립트라고 보시면 편하실 것입니다.


 더 자세히 공부해 보고 싶으시는 분들은 다음의 링크를 참조하시기 바랍니다. 한글 번역이 되어 있습니다. 잠시(?) 읽어보셈.. ^^;

http://korea.gnu.org/manual/release/ld/ld-mahajjh/ld_toc.html


  컴파일러가 컴파일을 하게되면 그 결과 파일이 object파일이 생긴다는 것은 잘 알고 계실것입니다.

이 각 object 파일들은 내부적인 어떤 포맷(보통 리눅스는 elf32,  윈도우는 coff 포맷을 가지고 있죠..)에 따라서

여러개의 섹션이란 녀석들을 가지고 있습니다. 대표적인 섹션이라면 코드 섹션(.text) 와 데이터 섹션(.data) 이 있습니다.


각 섹션들은 새롭게 빌드 과정에서 만들어 질수도 있고, 포맷별로 다른 이름을 가지고 있는 경우도 있죠. 컴파일러가

object파일을 만들면서 잘 분류를 해놓아서, 각 섹션에 차곡차곡 그 정보가 쌓여있게 되지요.


이후에 링커가 이들을 가지고 실행파일을 만드는 것을 이미 알고들 있으실터...


  일반적으로 링커는 내부정의된 링커 스크립트를 가지고 있고(default linker script), 이번에 봤던 임의의 스크립트를 연결해서 쓰는

경우도 있죠. 이 스크립트에 의해서 각 섹션을 다시 재 정렬 하는 녀석이 링커가 하는 역할이다라고 보시면 됩니다. 스크립트에 의해 마음대로 위치를 떡 주무르듯 할수가 있는 것이지요.


예를 들어보면, a.o에 (.text, .data)가 있고, b.o에 (.text, .data, .idata)가 있다고 하죠.

스크립트를 다음처럼 구성하면...
section {
 .text : { a.o(.text) } // a.o에서 .text 영역만을 .text 영역으로 구성하라!!
 .data : { *(.data) } // 모든 입력 파일에서의 .data 영역들을 가지고 .data 영역으로 구성하라!!
}

a.o에서 .text영역을 앞에두고, 모든 .data영역을 가지고 있는 입력 파일에서
차례대로 .data 영역을 읽어와 재구성을 하게 됩니다. 그 구성의 내용은

//////////////////////////////
//         a.o(.text)        //
//////////////////////////////
//         a.o(.data)        //
//         b.o(.data)        //
//////////////////////////////

가 되겠습니다. 여기서는 b.o의 .text 영역과 .idata여역은 스크립트에는 정의되지 않았기 때문에
최종 출력파일에는 b.o의 코드 영역은 들어갈수가 없습니다. 예로든 스크립트에
의해서 재정렬을 해보았지만, 결과 파일은 별 의미가 없는것 같군요.. ㅡㅡ;


한페이지 정도로 어떤 역할을 하는지 이해가 가셨으면 이번 글은 성공입니다.. ㅋㅋ

링커 스크립트에는 알수없는 외계(?)문자들이 많이 있으니 각 옵션을 알고 싶으신분은 위쪽 링크를 따라가셈...

'배움생활 > SoC' 카테고리의 다른 글

유지보수가 어렵게 코딩하는 방법  (0) 2011.12.16
C언어 매크로에서의 팁  (0) 2010.08.09
verilog 2001에서 배럴쉬프터 짜기....  (0) 2010.07.09
infer_mux 지정자  (0) 2010.07.06
H.264의 대항마가 나오네요....  (0) 2010.05.24


  간만에 책구입~ | 2010. 7. 9. 15:13 | 배움생활/ETC   

오랜만에 책 구입했습니다.
아무래도 학교에 있다가 보니 기술관련 서적을 구입할때 학교를 통해서 구입하는 때가 많았는데 한 석달정도 되었나?? 오랜만에(뭐... 스터디용 책은 빼고...) 책 구입했네요.

요즘 MPSoC라는 스터디 모임에 나가고 있습니다.
전공이 전공인지라 H.264등의 IP쪽만 공부하다가 보니 CPU관련해서 공부한다는 게 참 신기하더군요. 게다가 ARM과 Intel로 양분되어있는 임베디드와 PC시장에서 CPU를 제작한다는게 참 엄두가 안나는 일인 것 같았는데 많은 분들이 공부를 하고 계시고, 또한 회사도 있더라구요.
하여간, 요즘 멀티코어가 이슈가 되면서 간단하게는 그냥 여러개 붙이면 되지 않나 하고 막연하게 생각하다가 공부를 하면 할 수록 신세계가 열린다는 느낌이랄까요?

대략 CPU(openRISC)의 분석이 끝나가는 시점이 되어가는데 전문적으로 하시는 분의 말씀이 앞으로 스터디를 하는데 소프트웨어 이슈가 더 많을 것이라고 하더군요. 그러다가, 동생이랑 잠깐 서점에 갔다가 보게 된 책이라서 다음의 책을 구입했습니다.

  프로그래머가 몰랐던 멀티코어 CPU 이야기  김민장 지음


뭐.. 설명은 없지만서도.... 그냥 지금 모임에서 공부하는 부분을 좀 더 쉽게 썼다고 해야 하나요? ^^ 개인적으로 이런 프리뷰(?)나 리뷰(?)성의 책들을 좋아하는 지라... 정리할 겸사 해서 구입하였습니다. 소프트웨어 이슈가 나오는지 모르겠지만서도 프로그래머측면에서 멀티코어CPU를 바라보는 입장이 써 있겠죠?? ^^; (요즘 바뻐서 읽을 시작도 못했습니다. -_-)

그리고.....
항상 소프트웨어가 딸린다는 자체평가를 내리는(그렇다고 하드웨어쪽을 잘하는 것도 아닌데 말입니다. ㅠㅠ) 저인지라... 그냥 책 제목을 보고 골랐습니다. 이런류의 서적들이 꽤 있긴한데, 대부분 절반정도 읽다가 말았는데... 이번에는 좀 쉽게 쓴 책이길 바랍니다. ㅠㅠ

  프로그래밍 수련법  브라이언 W. 커니핸.롭 파이크 지음, 장혜식.신성국.김정민 옮김
프로그래밍 수련이란 단순히 코드를 작성하는 것만이 아니다. 프로그래머들은 설계, 디버깅, 테스트, 성능 개선, 소프트웨어 유지보수에 대한 트레이드오프(tradeoff)를 다뤄야만 한다. 이와 함께 소프트웨어의 명세를 유지하면서도 호환성, 견고성, 안정성 같은 문제들을 고려해야 한다. 이 책에는 C, C++, 자바 외에도 다양한 언어로 작성된 실전 예제와 현실적인 충고들이 가득하다.
 

아무래도 책보다는 인터넷 자료들이 훨씬 좋네요. 하지만 종이만의 느낌이 있죠.. ^^


#1
 
     
- Home
- Guestbook
- Manage - Location
- Tag - Post