기본 콘텐츠로 건너뛰기

싱가포르 여행 1일차

난분명 아침에 11시쯤에 바로 밥먹고 공항으로 이동한다는 소리를 들었는데...그전에 과학관으로 끌려가서 급하게 회로 만들어서 전시를 하게 됬다...
  • 다른 학교에서 준비한 회로

  • 급하게 준비한 회로




아쉬운게 이거 기간만 제대로 알앗더라면 좀더 멋들여 지게 만들수 있엇을것 같다...

아무튼다시 과학관에서 학교로 이동한뒤 바로 공항으로 끌려 나가게 되었다.

  •  공항 도착!!!
 오오오, 처음와보는 인천 공항...예상이상으로 크고 넓엇다. 예전에 가족여행을 가면서 청주공항은 갓지만 여긴 그 청주공항보다 더 크고 넓다는 느낌이 들었다.
그리고 너무 일찍와서 애들 사진찍고 시간만 때웟다.
  •  비행기 타기전

시간을 계속 때우다가 비행기를 보게 됫는데 멀리서 보니까 은근 작다는 느낌...?
그리고 가까이서 보니 크더라...
  •  비행기 안 
 운이 좋게도 창문쪽으로 자리가 됬다 어예
  •  비행중



 비행 시간이 총 6시간 걸린다고하길레 심심할줄 알았는데 예상외로 노래도 있을건 있고(없을건 없다) 영화도 않본것들이 들어있어서 그래도 심심하지 않게 온것 같다. 그리고 3번째 사진이 기내식인데 이거 다른거 다 괜찮은데 두부가 왜 들어 있는건지 정말 맛이 없다...(개인적으로...)
  •  도착

일단 도착해서 짐을 찾은 뒤, 유심을 사기위해서 이동을 했다.
  •  유심 구입

10 일동안 100GB에 국제 전화 90분 무료라는데...싱가포르 달러기준으로 30$를 내고 구입했다. 사실상 이거 로밍보다 가성비가 좋은것 같다. 그리고 이거 제일 신기했던게...일반 유심이랑 나노랑 마이크로랑 3단 분리가 된다고 표현해야되나....아무튼 3종류 유심사이즈들을 다 커버해준다...그리고 그다음 버스를타고 숙소로 이동하기 위해서 공항 밖으로 나왔는데 적도 주변지역들은 습하다고는 들었지만 안이랑 밖이랑 공기가 너무차이가 났다...
  •  숙소 도착
30~40분 정도를 버스로 이동하자 나온 Orchid Hotel !!! 4성급 호텔이라서 그런지 내부가 장난아니다. 시간이 늦어지기도 했으니 도착하자마자 씻고 바로 짐만 조금 정리한뒤에 자기로 했다. 내일부터는 여러군데 이동하면서 체험도하고 조사(?)도 한다니 기대가 되고,4성급 호텔이라니까 여기 아침이 제일 기대가 됬다.


댓글

이 블로그의 인기 게시물

C의 volatile

가장 쓰이지 않는 C/C++ 언어의 volatile 이라는 키워드가 있다. 이 키워드는 대부분의 참고 서적들이 컴파일러의 최적화를 막아준다고만 적어둘 정도로 사용 빈도수가 적기도하고 중요도 까지도 낮은 그런 키워드인 셈이다. 하지만 이 키워드가 임베디드 소프트웨어 에서는 중요한 키워드중 하나가 된다. 거의 하드웨어가 사용하는 메모리 선언 시에 사용되고 다음과 같은 경우에 사용되는 편이다. 메모리 맵 입출력(MMIO)을 제어 인터럽트 서비스 루틴 사용 멀티 쓰레드 환경 이렇게 3가지에 사용되는데 임베디드에서는 주로 아래와 같은 예시들과 같은 경우에 주로 사용된다. 예시 1) unsigned int* test; test = (unsigned int*) 0x1020; test = (unsigned int*) 0x1028; 예를 들어서 다음과 같은 코드가 있을때 컴파일러는 중간 문장은 필요 없는 것으로 판단하고 제거한뒤 컴파일 할것이다. unsigned int* test; test = (unsigned int*) 0x1028; 결과 적으로는 위 문장만 실행되는데 volatile 키워드를 사용하면 이것들이 전부 컴파일 되서 전부의미를 가지게 된다 volatile unsigned int* test; test = ( volatile unsigned int*) 0x1020; test = ( volatile unsigned int*) 0x1028; 예시 2)  예를 들어 0x1234에 8비트의 status 레지스터가 있고, 이 레지스터가 0이 아닌 값을 가질때까지 폴딩하기 위해서 아래와 같은 코드를 작성했다. (루시퍼님 블로그의 예시가 적당해서 가져왔다) INT8U *ptr = (INT8U *)0x1234; while (*ptr == 0) 만약 옵티마이징을 키게 된다면 이것은 move ptr, #0x1234 move a, @ptr loop bz loop 이렇게 다시는 0x1234값을 받아오지 않게 어셈블...

HomeNews Alpha Final!

그런데 인성인증인데 왜 기술적인걸로 프로젝트를 햇더라 파싱은 제리코 라이브러리를 사용해서 완성시켰다. 이제 PPT짜러...! 거의 다완성되간다!

C언어 register 변수의 함정카드

C언어를 하다보면 register 라는 CPU의 레지스터에 자료를 저장하는 변수를 알수있다. 대신에 한 프로그램에서 최대 2개 정도까지만 사용이 가능하고 지역변수만 가능 및 32bit CPU는 32bit 크기의 변수만 사용 가능하다. 장점만 보면 기본적으로 메모리쪽에 저장되는 일반 변수들보다 더 빠르게 접근이 가능할 것 같은데...인라인 어셈이랑 메모리랑 레지스터랑 비교하면 어떤게 가장 빠른지 궁금해서 한번 테스트 해보게 되었다. 우선 테스트 해볼 코드는 다음과 같다. 거의 동일한 연산을 하고 다른 점이 있다면 인라인 어셈은 전부 다 레지스터를 이용해서 연산한다는 정도...? 위의 코드를 컴파일 해서 실제로 돌려보면 실행 결과는 다음과 같이 나온다. !? 그냥 아무런 형식도 지정해주지 않은 auto와 똑같은 결과가 나온다. # C언어는 기본적으로 아무런 형식을 지정해주지 않으면 auto로 해준다. # int a => auto int a 그래서 어째서 저런 결과가 나왔는지 컴파일에 옵션을 줘서 어셈파일을 분석해 보았다. 인라인 어셈 auto for register for push ebp mov ebp, esp mov ecx, 0 jmp SHORT $INLoop$3 $INLoop$3: cmp ecx, 10000000 jae SHORT $EXIT$4 mov eax, ecx shl eax, 2 inc ecx jmp SHORT $INLoop$3 $EXIT$4: cmp ebp, esp call __RTC_CheckEsp popebp ret,0 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR [ebp-8], -858993460 mov DWORD PTR [ebp-4], -858993460 mov DWORD PTR _i$2[ebp], 0 jmp SHORT $LN4@For $LN...