UML
- Unified Modeling Language
- 소프트웨어 설계에 사용하는 언어
- 소프트웨어 모델링, 객체지향 소프트웨어 모델링하는 표준 그래픽 언어
- 시스템의 여러 측면을 그림으로 모델링
- 하드웨어의 회로도같은 의미
UML 다이어그램
- 시스템의 모델링은 아래 3가지 관점으로 구성
: 기능적 관점
: 구조적 관점
: 동적 관점
시퀀스 다이어그램
- 객체간의 동작 상호작용을 시간개념 중심으로 모델링하는 것
- 참여하는 객체를 그린다
- 파악한 객체를 X축에 나열하고 라이프라인을 긋는다 '-----'
- 사용 사례에 기술된 이벤트 순서에 따라 객체의 메시지 호출을 화살표로 나타낸다
상태 다이어그램
- 상태는 객체가 존재할 수 있는 조건 중 하나로 모서리를 둥근 사각형으로 표시
- 안쪽 상단에 상태 이름을 기술
- 이벤트는 화살표로 상태 사이를 표현
Activity Diagram
- 우리가 알고 있는 플로우차트와 유사한 개념
- 처리절차를 한눈에 확인할 수 있는 다이어그램
- 시작점, 활동, 종료점, 전이로 구성
- 시작점은 검은 점으로 표시
- 활동상태는 둥근 사각으로 어떤 처리와 실행 의미
- 판단은 다이아몬드로 함
- 종료는 처리의 종료를 의미, 이중원
예제1: LED Blinking
-
NUCLEO-F429Zi

-
GPIO : PB0, PB7, PB14, PC13, PG6, PG7

-
Clock Configuration 확인
: 클럭 발생기용 크리스탈이 8MHz로 공급
: 이것을 채배하여 168MHz로 동작

-
PB7을 이용해 LED를 500ms마다 깜빡이게 하기
코드작성
- GPIO를 이용해 제어하므로 아래의 함수 사용
HAL_GPIO_WritePin(GPIO_Type, GPIO_Pin, PinState)
- 우리가 쓰려는 핀은 PB7이므로
: GPIO_Type : GPIOB => LD2_GPIO_Port
: GPIO_Pin : LD2_Pin
: Pin_State : GPIO_PIN_SET
HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET);
HAL_Delay(500);

혹은 아래와 같이 코딩
HAL_Delay(500);
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_7);

- HAL_Delay() 함수 재정의
: HAL_Delay()함수는 weak_으로 정의가 되어있어 동작하지 않음

: 본문에 재정의하기

- 디버그 설정


2. Clock Configuration 확인
- 클럭 발생기용 크리스탈이 8MHz로 공급
- 이것을 채배하여 168MHz로 동작
