기본 콘텐츠로 건너뛰기

싱가포르 여행 2일차


  •  아침
 진짜 한마디로 요약하자면 제일 맛있는게 사진 오른쪽에 오렌지 주스다. 어제 기대한 것 처럼 뷔폐식으로 나오긴 했는데 한국에서 먹던것과는 맛이 매우 큰차이가난다. 사진에는 없지만 밥이 우리나라처럼 서로 좀 달라붙는 그런 밥이아니라 그냥 흐트러지는 점성이 없는 밥이다... 그리고 가장 충격이였던게 시리얼 맛이 진짜 우리나라꺼만 먹다가 가면 이게 먹으라는건지 아니면 내가 잘못가져온 건가 라는 생각이 들 정도로 맛이 없다. 그냥 콘 시리얼이라 그런거 같긴 한데...뭔가 맛이 이상한 우유랑 섞이니 맛이 아주 개판이다.
(한국꺼만 먹다간 내 기준)
  •  시스코(CISCO) 견학


 원래 내이름은 KIM GYUNG SIK인데...같은 발음인 저렇게 됫다 (여권도 저래됨)



 역시 네트워크 관련 기업이라서 그런지 서버실은 기본이요 네트워크를 활용한 여러가지 기술들을 볼수 있엇다.그리고 외국 기업이라 그런지 내부 지원(?) 이 상당히 좋다...노는곳도잇고 낮잠을 잘수 있는곳까지 존재한다.

  •  점심
 솔직히 말해서 이메뉴 샤브샤브같은 거라던데...뭔가 우리나라의 샤브샤브랑은 너무 많은 차이가 있던 메뉴였다...소세지도 들어가고 닭고기도 들어가고 생선도 들어가고....

  •  동물원








 동 물원에 도착해서 들어가면 맨 처음으로 펭귄이 있는데 얘내가 너무 귀여웠다. 그리고 그다음으로는 5번째 사진의 이동수단을 이용해서 관람을 진행하는데 한국에서는 보지 못했던 여러가지 종류의 새를 볼수 있엇다. 마지막으로 여기서 공연을하는데 새를 이용하고 관객들이 참여할수 있단점에서 인상깊엇던 공연이였다  (한국에서는 본적이 없다...)
  •  싱가포르 대학교 

 여긴 아쉽게도 찍은 사진이 한장밖에 없다. (한장 더있지만 팀 사진이라서 일단 보류)
 대학교가 그동안 내가 보던 대학들과는 큰 차이를 가졌다... 그리고 이 주변에 편의점이 하나 있는데 거기서 코카 콜라 한정판 캔 이 있는것을 보고 3개나 들고 오게 됬다...
  •  저녁 
 저녁은 한식이다. 짐치찌개인데 진짜 맛있엇다. 진짜 이때 향수병이 생기는게 이런거 때문이 아닐까...라는 생각이들었다.


내일은 팀 미션에 관련해서 여러가지로 돌아다녀야 되는 날인 중요한 날이기 때문에 약간 긴장이 된다.

댓글

이 블로그의 인기 게시물

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...