반응형

 

ST사의 MCU를 사용하여 개발할 때 필수로 사용되는 ST-LINK/V2의 핀맵이다.

20핀 모두 사용하는 JTAG와 일부 핀만 연결하여 사용하는 SWD 모두 사용할 수 있다.

 

보드의 소형화 때문인지 20핀 보다는 SWD를 사용하여 4~6핀 정도만 사용하는 듯하다.

반응형
 

VirtualBox에서 Ubuntu를 올리고 각종 패키지 설치를 위해 호스트PC랑 복사 붙여넣기를 해야하는데

 

VirtualBox의 클립보드 공유 설정까지 해줘도 안될때가 있다.

 

이때는 VirtualBox 상단 도구메뉴에서 장치(Devices) - 게스트 확장 이미지 CD 삽입을 눌러 패키지를 설치해주면 된다.

 

'Programming' 카테고리의 다른 글

ST-LINK/V2 핀맵(PinMap)  (0) 2024.04.19
[C#,WPF] INotifyPropertyChanged & binding  (0) 2024.01.25
패킷 TLV필드 형식  (0) 2023.10.31
[C/C++] Print Formatting (Print 포맷 문자)  (0) 2023.10.24
.gitignore 파일 쉽게 생성하기  (0) 2023.10.24
반응형

WPF 작업시 XAML에서 코드와 속성값을 1:1 시켜주는 Binding 기능은 굉장히 편리한 기능이다.

 

xaml 상에서는 해당 컨트롤의 속성값에 아래와 같이 Binding을 추가해주면 된다.

 
<TextBlock Name="textblockGuiVersion" Text="{Binding UI_VERSION, Mode=OneWay}"/>

 

 

코드에서는 아래와 같이 INotifyPropertyChanged를 상속 추가한다. 추가하면, OnPropertyChanged 속성이 없다고 에러가 발생한다. 이코드도 함께 추가하여 인터페이스를 구현한다.

    public partial class MainWindow : Window, INotifyPropertyChanged
    {
    }
    
    
    public event PropertyChangedEventHandler PropertyChanged;
    /// </summary>
    /// <param name="propertyName">The property that has a new value.</param>
    protected virtual void OnPropertyChanged(string propertyName)
    {

        PropertyChangedEventHandler handler = this.PropertyChanged;
        if (handler != null)
        {
            var e = new PropertyChangedEventArgs(propertyName);
            handler(this, e);
        }
    }

 

 

 

이후 xaml과 바인딩된 변수의 Property set;에 아래와 같이 추가한다.

private string _strVersionUI = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
public string UI_VERSION { get => _strVersionUI; set { _strVersionUI = value; OnPropertyChanged("UI_VERSION"); } }

 

반응형

일반적으로 정규화되지 않은 프로토콜을 사용하는 통신에 TLV필드를 이용한 데이터 통신을 사용한다.

 

TLV필드란 Type, Length, Value 이 3가지의 앞자리의 줄임말로, 크기가 가변적(Length)인 값(Value)을 형식(Type)과 함께 정의시킨 필드 구조이다.

 

이더넷을 이용한 TCP 통신에도 많이 쓰이며, 시리얼통신으로 주변기기 제어에도 많이 사용한다.

 

TLV필드를 갖는 일반적인 패킷 구조의 예

일반적으로 개발에 사용되는 패킷의 구조는 크게 헤더(Header), 페이로드(Payload), 체크섬(Checksum) 또는 CRC 필드로 구성된다.

 

TLV는 적은 메모리 공간으로 가변적인 데이터를 송수신하기 위한 효율적이고, 간단한 구조가 특징이다.

 

반응형

Data Type(s)Format Specifier(s)

uint8_t, uint16_t %u (Unsigned)
uint32_t %lu (Long Unsigned)
int8_t, int16_t %d (Decimal - Signed)
int32_t %ld (Long Decimal - Signed)
uint8_t, uint16_t, int8_t, int16_t %x (Hexadecimal - Lowercase), %X (Hexadecimal - Uppercase)
uint32_t, int32_t %lx (Long Hexadecimal - Lowercase), %lX (Long Hexadecimal - Uppercase)
float, double %f (Float)
 
반응형

git을 이용하여 개발 프로젝트를 관리하다 보면 불필요한 파일이나 commit되면 안되는 파일이 push되는 경우가 있다.

 

이를 방지하고자 .gitignore (확장자 없으며, 맨 앞에 .(dot)으로 시작) 파일을 루트 디렉토리에 생성하면 된다.

 

구글링을 하면 관련 사용법등이 많이 나와있는데, 자신의 개발 프로젝트의 환경에 따라 customizing 하기 어렵다. (귀찮다.)

 

아래 사이트에서 검색창에 프로젝트 키워드 (개발툴, 개발언어 등)을 입력하면 한번에 생성된 .gitignore 파일을 다운로드 받을 수 있다.

 

https://www.toptal.com/developers/gitignore/

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com

 

 

+ Recent posts