2007년 09월 03일
00 작업일지
00 작업일지
2007/09/05 작업내역
- 프레임워크 버전 1.0.3 소스를 정리하여 Tutorial을 할 수 있도록 정리
- 프레임워크 Tutorial 문서를 프레임워크 버전 1.0.3 버전에 맞추어 정리중
2007/09/03 작업내역
- kernel Shell에 있는 라인 변경하고 글자 출력하는 함수를 모두 StdLib.c 밑으로 이동하고 프레임워크 기본 함수로 변경
- 굳이 외부 함수로 만들 필요 없음
- Kernel Shell에 이 코드가 포함됨으로 해서 Kernel Shell을 확장하기가 아주 어려워 짐을 발견
- Kernel Shell의 코드 모두 정리
- Standard C Library에 있는 printf 와 비슷한 기능을 하는 함수 추가
- 완전한 기능은 하지 않고 간략한 기능만 제공
2007/08/31 작업내역
- 개발 환경을 이클립스(Eclipse)로 이동
- makefile 전면 수정
2007/07/19 작업내역
동기화 오브젝트를 프레임워크에 추가하면서 kLock(), kUnlock()함수를 Intel Architecture에서 지원해주는 명령을 사용해서 다시 작성하였음.
2007/07/11 작업내역
- makefile 사용법을 익혀서 프레임워크 make 파일 수정
makefile이 훨씬 깔끔해 졌다. make를 제대로 활용하도록 하자.
2007/07/10 작업내역
- asm.asm 파일에 어셈블리어 함수에서 사용하는 레지스터를 제대로 저장하고 복구하지 않아서 멀티태스킹시에 오류가 발생하는 것을 수정
- isr.asm 파일에서 General Register를 저장하지 않았는데, 이것으로 인해 크래쉬가 나는 문제를 발견하여 General Register를 저장하도록 수정
ISR에서 General Register를 저장해줘야 하는것으로 미루어 보아 GCC의 C 함수에서 레지스터를 제대로 저장하고 복원하지 않는 레지스터가 있는 것으로 판단된다. 주의해서 코딩해야 할 것 같다. @0@)/~ 오늘 이것 때문에 완전히 낭패.. ㅜ_ㅜ
2007/07/03 ~ 2007/07/04 작업내역
- 1.0.0 버전 릴리즈
- 1.0.1 버전 릴리즈 - asm.asm 쪽의 스택 프롤로그 부분 수정. 태스크 처리 부분 수정
2007/07/02 작업내역
어느정도 작업이 완료 된 상태기 때문에, 릴리즈 준비를 위해 약간 손봤다.
- 커널 스택의 Bottom 위치를 4Mbyte로 이동. 원래 2Mbyte였는데, 커널 코드가 커지면 스택의 크기가 자연적으로 줄어들기 때문에 조금 넉넉하게 4Mbyte 영역으로 이동.
- 파일 헤더에 KKAMAGUI와 kkamagui.egloos.com을 추가했다.
2007/07/01 작업내역
기존의 소스에서 주석 부분 양식을 수정했다. 독시젠 스타일(/** */)로 변경하고 파일 여기저기에 두서없이 흩어져있던 함수들을 원래 위치에 맞게 이동했다.
더 많은 작업을 하려 했으나 일단 잠이와서.. ㅋㅋ 잠깐 쉬었다가 다시 ㅋㅋ
어휴 좀 쉬었더니만 작업이 좀되네. ㅎㅡㅎ..
- 포인터 정의 방식( char *pAAA => char* pAAA) 수정
- 구조체 정의 방식 수정 Typedef 이용
- 사용하지 않는 어셈블리어 코드 대폭 수정
- 태스크 스위칭 시 cli, sti 하는 코드 추가(sti를 하지 않으면 타이머 콜백에서 호출시 인터럽터 불가 상태이기 때문에 더 이상 타이머 인터럽터가 발생하지 않아서 스위칭이 안된다...) <태스크 스위칭 부분 참조 훗날 링크 추가>
2007-06-30 이전까지 작업내역
기존의 Framework 소스를 어느정도 정리했다. 그 중에서 가장 문제였던 isr 관련 코드가 NASM 메크로를 이용해서 깔끔하게 정리되었다.
NASM에서 매크로 사용법은 10 참고자료에 있다.
이 글은 스프링노트에서 작성되었습니다.
# by | 2007/09/03 02:52 | 커널 | 트랙백 | 덧글(0)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]