본문 바로가기
반응형

분류 전체보기2980

20151130 엄민웅 -WinSock 1일차. 오전시간 찾아본 PDF파일. 오후시간 조인씨 보면서 수업.http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/win_network_prog/doc/winsock_basic 소켓이 유닉스 기반이라 별 차이 없지만 윈도우에서 짤때 조금 다른 점은시작할 때 WSAStartup끝낼 때 WSACleanup함수 호출 해줘야 한다는 점.비주얼C에서 짜면 라이브러리 자동설정 되기도 하지만 도스에서 짤때는 #pragma comment(lib, "Wsock32.lib") 넣어줘야 함. 나머지는 소켓 네트워크 프로그램 짤때 쓰는 함수랑 쓰는게 거의 비슷. 아 그리고 read write 대신에 recv send 함수 사용함. Server 123456789101112131415161.. 2015. 11. 30.
20151130 업무일지 -여지윤- winsock 1~8교시☆S/W★ ● Winsock - 윈속은 windows Socket API 줄임말로, 윈도우 운영체제 기반의 네트워크기반 프로그램을 개발하기 위한 기술요소들이 적용된 개발 도구다. BSD:::socket를 기반으로 하고 있어서, 리눅스환경에서 네트워크 프로그래밍 경험이 있다면 어렵지 않게 적응할 수 있다. 대부분의 소켓 함수도 그대로 사용한다. - 우선적으로 기본형을 준비하여 winsock에 대해서 간단하게 알아보면 다음과 같이 코드를 정리 할 수가 있다. - 기본적으로 winsock이 제대로 동작하기 위해서는 위의 코드를 입력해야만 정상적으로 작동이 된다. - 이후에 예전에 한번 했었던 socket 함수를 넣어야 한다. - socket 함수를 넣기 위해서는 다음과 같은 코드를 입력한다. - 서버.. 2015. 11. 30.
20151130-김재홍-윈도우소켓 /***윈도우소켓***/ Server.c #include #include #define PORT 7755 #define IP "192.168.0.207" #define MAX_PACKETLEN 512 #pragma comment(lib, "Wsock32.lib") int main() { WSADATA wsaData; SOCKET sSock; SOCKET cSock; SOCKADDR_IN sAddr; int iRet; int iLen; int Writen; char ReadBuffer[MAX_PACKETLEN]; if(0 != WSAStartup( MAKEWORD(2, 2), &wsaData )) { //int WSAStartup( WORD wVersionRequested, WSADATA* lpWSADat.. 2015. 11. 30.
20151130 수업 / winsock_1 - 남수진 Winsock 필요한 헤더파일/라이브러리 winsock.h #pragma comment(lib, "wsock32.lib") Winsock2.h #pragma comment(lib, "ws2_32.lib") gcc에서도 라이브러리를 추가해야하지만 상위 버전의 gcc에서는 라이브러리를 생략해도 컴파일된다 시작과 끝에 WSA 함수를 붙인다 윈도우에서 소켓을 사용하기위해 반드시 불러야 하는 함수 시작: WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData) wVersionRequested : winsock 버전 끝: WSACleanup() SOCKET socket(int af, int type, int protocol) SOCKET = unsigned int 네트워크.. 2015. 11. 30.
20151128_김태현_ARM 어셈블리2일차 ARM 어셈블리는 STST는 하드웨어적으로 처리하지만LDST는 프로그래머가 직접 구현해 주어야한다. Return이라고 적힌 부분이 LDST함수라고 생각하면 된다. r0~r3 까지 함수의 인자로 사용하는 레지스터r4~r7 까지 변수로 사용하는 레지스터대부분은 레지스터가 어큐뮬레이터라고 생각하면된다. 함수를 호출할 때 r0~r3 인자로 쓰이는데. 그전의 값을 보존하고 싶으면 stack에 backup을 해줘야 한다. c를 배우는 이유는 아키텍쳐에 따라서 따로 어셈블리를 공부할 필요없이 컴파일러가 해석해주기 때문이다. 하지만 어셈블리를 배우는 이유는 그 안에 함수호출규약 등을 알아야지 프로그램을 효율적으로 짤수 있기 때문이다. 이런 concept을 이용해서 여러 chip을 만들다 보니까, SoC 측면에서 각각의.. 2015. 11. 30.
20151127 - 강동조 개인업무일지 ARM2일차 인텔은 eax값빼고는 변하지 않는다함소호출규약이 있다 cpu에따라서 다 다르다 우리가 인텔것만 배웠기에 나머지는 조금 변형됬다생각하면 우물안개구리이다모든함수는 cpu에땨라서 되지 않는다 cpu가 바뀌어 아키텍처를 새로 짜야 합니다 인텔은 무조건 스텍에 저장을한다 그렇기에 많이쓰던 작게 쓰던 문제가 없다 ARM은 다르다 ARM은 모바일용이다 임베디드를 짤떄 에는 이런것을 굉장히 고려를 많이 해야한다 구조체를 리턴시킬떄 중간파일을 만들어서 확인하면 된다 구조체 대입을 시키는것을 확인 하게 되면 한개한개 이동하게 된다 우리는 편하지만 디스어셈블리를해서 확인해보면 굉장히 불편해 한다 그것을 잘 봐야 한다 ARM에서 인자를 넣을떄 사실은 레지스터에 저장이 되고 있었다 ARM에서 인자 5개 만들때랑 4개만들떄랑은 .. 2015. 11. 30.
20151127_박서연_일일업무보고서_ ARM Assembly(2) 2015-11-30 *ARM Assembly(2) #임베디드 레시피 공부ARM의 범용 레지스터 위에서 보듯이 함수의 인자로 4개까지는 레지스터에 저장하고 나머지는 스텍에 저장한다. 그리고 지역변수의 경우에도 7개의 변수까지는 레지스터에 저장하지만 나머지는 스텍에 저장하게된다. 그러므로 함수를 생성할 때 인자 4개, 지역변수7까지만 선언하여 쓴다면 속도가 빠른 함수를 사용할 수 있다. #ARM은 Interrupt냄새를 어떻게 맡는가?인터럽트를 위해 따로 전기 신호가 통하도록 선이 만들어져 있다. 인터럽트 중에 또 인터럽트가 발생했을 때 이것을 처리해 주는 것을 nesting이라고 한다. nesting에 대한 판단은 시스템에서 하게 된다. SOC는 레고블럭과 같다. 수정이 필요한 부분만 붙였다 뜯었다 할 수.. 2015. 11. 30.
2015-11-27 ARM Assembly 개인업무일지 - 천정호 R0 ~ R3까지의 레지스터는 주로 함수의 인자로 사용이 되며 레지스터중에 가장 많이 사용이 된다.ARM에서 인자는 4개까지 레지스터로 사용이 가능하다.내부 변수는 7개까지 레지스터로 사용하며 이 이상의 인자와 내부 변수는 스택에 모두 할당이 된다. 함수의 반환값은 R0에 저장이 되어 반환이 된다.함수의 R4 ~ R11까지는 사용전에 스택에 내용을 저장하고 함수가 끝나기전에 원래의 값으로 복원시켜줘야한다. R12 ~ R15 레지스터들은 특수기능을 수행하는 레지스터이므로 함부로 건들지 않는것이 좋다.R12 - Long Branch시에 Veneer를 통해 주소 할당 시에 임시 보관소로 사용R13 - Stack PointerR14 - Jump시에 돌아올 곳의 주소를 저장R15 - 현재 실행중인 주소를 저장 인.. 2015. 11. 29.
20151127_안향진_ARM어셈블리_2 ==========================================================================================ARM 어셈블리========================================================================================== =Exception 처리 =AAPCS : Process Call Standard for ARM Architecture *인텔 -구조체 = 구조체 대입시 어떻게 동작하는가? stTest1 = stTest2;004113F9 mov ecx,7 004113FE lea esi,[stTest2] 00411401 lea edi,[stTest1] 00411404 rep movs dwor.. 2015. 11. 29.
728x90
반응형