거의 다 까먹었긴 한데..

ㅇㅅㅇ


예전에 코톡에 적어서 백업해둔 것

ㅇㅅㅇ


  1. 하드웨어 준비
  2. 하드웨어 핀 세팅 작업
  3. 클럭 세팅
  4. 전원 들어왔을때 실행할 부트 영역 작업 ( 어셈블리 )
    –> 소스 까보면… C 언어에서 main() 호출 코드 들어감
  5. RAM 물리/논리 페이징 작업 ( elf 파일 )
  6. 소프트웨어 적인 클럭 주파수 세팅
  7. 왓치독 작업 ( 클럭이 먼저 세팅 되어 있어야 가능했던 것으로 기억 )
  8. 버스쪽 셋업 ( I2C, GPIO ? )
  9. 인터럽트 세팅 ( 외부 디바이스 용도 ) — I2C 쪽 ?
  10. 시리얼 셋업 – GPIO 쪽
    –> 클럭이랑 맞춰서 Baud 설정
  11. 카메라, 스피커, 랜, 디스플레이 장치별 인트럽트 및 기초 세팅 작업
  • 내가 했던 것은 ARM 계열이라 멀티 태스크 위주라…
    여기서 부터 태스크 세팅 작업 진행
  1. 총괄할 메인 태스크 부터 올리고.
  2. 태스크간 상태 전달할 메세지큐 셋업.
  3. 세마포어 및 드라이버 지원용 작업 진행.
  4. 태스크 할당 및 우선순위 지정
  5. 각 태스크에 할당할 스택에 맞는 어플리케이션 작업
    ex1. 모바일의 경우 모뎀을 이용하기 때문에 PPP 위에 TCP 올리기
    ex2. GPIO위에 시리얼 올리고 그위에 USB올리기
    ex3. CAM, 디스플레이 VRAM 공통 영역 관리 및 태스크 작업
    ex4. 플래쉬램 영역에 파일 시스템 셋업
    ex5. 커멘드 파서 및 시리얼로 커멘드 실행 가능하게 구현
  6. VM 같은게 있다면… 그기와 연동되는 HAL 작업 진행