본문 바로가기

분류 전체보기841

WSL2 설치하기 (Windows Subsystem for Linux) https://learn.microsoft.com/ko-kr/windows/wsl/install-manual 이전 버전 WSL의 수동 설치 단계 wsl install 명령을 사용하지 않고 이전 버전의 Windows에 WSL을 수동으로 설치하는 방법에 대한 단계별 지침입니다. learn.microsoft.com 1. PowerShell을 관리자 권한(시작 메뉴 > PowerShell >에서 관리자 권한으로 실행 >을 마우스 오른쪽 단추로 클릭)으로 열고 다음 명령을 입력한다. dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 2. Windows 10 x64 시스템의 경우 버전 1903 .. 2022. 10. 1.
LRU 와 SRU 출처 : https://blog.naver.com/acftacft/222549840039 2022. 9. 30.
윈도우에서 리눅스 개발환경 구축하기 WSL2 + VSCode 먼저 윈도우 PC에 WSL이 깔려있어야 한다. WSL 설치는 공식 문서에서 자세하게 설명하고 있다. https://learn.microsoft.com/en-us/windows/wsl/install Install WSL Install Windows Subsystem for Linux with the command, wsl --install. Use a Bash terminal on your Windows machine run by your preferred Linux distribution - Ubuntu, Debian, SUSE, Kali, Fedora, Pengwin, Alpine, and more are available. learn.microsoft.com VSCode 에서 WSL extension.. 2022. 9. 30.
CCS ] Cannot determine URI for [project-name]/[file-path]/[file-name] 오류 해결하기 Project Explorer 에서 작업하던 프로젝트가 사라졌을 때 해결 법 Project Explorer 에서 import CCS Project 클릭 Browse - 프로젝트의 루트 디렉토리 선택 이렇게 다시 import 하면 해결 된다. 2022. 9. 29.
5. 시험준비상태검토 (TRR, Test Readiness Review) 시험준비상태검토 (TRR, Test Readiness Review) 가. 개 요 TRR은 시험 목적, 방법, 절차, 범위, 인력, 자원 및 안전 고려사항 등이 포함된 시험계획이 사용자 요구사항 및 체계요구조건에 대한 만족 여부를 검증 및 확인할 수 있는지 검토하여 시험평가(DT/OT) 단계로 진입 가능함을 공식적으로 확인하는 절차이다. 나. TRR 수행시기 및 업무절차 1) 수행시기 가) TRR은 체계통합 및 기능적인 점검이 완료된 후 공식시험평가(DT/OT)를 착수하기 15일 이전에 수행하며 통합시험평가를 수행하는 경우 개발시험평가 착수 전에 TRR을 수행하고 개발시험평가(DT)와 운용시험평가(OT)를 별도로 수행 시 각각에 대해 TRR을 수행한다. 2) 업무절차도 다. TRR 진입기준 1) 연구개발주.. 2022. 9. 26.
4. 상세설계검토 (CDR, Critical Design Review) 상세설계검토 (CDR, Critical Design Review) 가. 개 요 CDR은 체계요구조건 및 체계기능요구조건이 상세설계를 충족하는 초기 제품규격으로 HW설계기술서(HDD), SW설계기술서(SDD), 인터페이스설계기술서(IDD), 연동통제문서(ICD), 제품 규격서(안)에 완전하게 반영되었는지를 확인하고 초기 제품기준선(Initial Product Baseline)을 설정하며, 승인된 총사업비와 개발일정 및 수용 가능한 위험범위 안에서 요구조건을 충족하는 시제제작, 체계통합 및 시험단계로 진행이 가능함을 공식 적으로 확인하는 절차이다. 나. CDR 수행시기 및 업무절차 1) 수행시기 가) 체계의 세부 구성품/부품까지 상세설계가 완료되고 M&S를 통하여 성능예측을 수행한 후 시제제작을 시작할 준비.. 2022. 9. 26.
3. 기본설계검토 (PDR, Preliminary Design Review) 기본설계검토(PDR, Preliminary Design Review) 가. 개 요 PDR은 체계요구조건 및 체계기능요구조건이 기본설계를 충족하는 개발규격으로 체계/부체계설계 기술서(SSDD), HW요구사항명세서(HRS), SW요구사항명세서(SRS) 및 개발규격서(안)에 완전하게 반영되었는지 확인하고 할당기준선(Allocated Baseline)을 설정하며 승인된 총사업비, 개발일정 및 수용 가능한 위험범위 안에서 요구조건을 충족하는 상세설계로 진행이 가능함을 공식적으로 확인하는 절차이다. 나. PDR 수행시기 및 업무절차 1) 수행시기 체계개발 단계에서 하드웨어와 소프트웨어 형상품목의 기본설계가 완료된 후 IPT가 기본설계의 완전성 여부와 상세설계 및 시험절차 개발을 시작할 준비가 되었는지 결정할 필요가.. 2022. 9. 26.
2. 체계기능검토 (SFR, System Functional Review) 체계기능검토 (SFR, System Functional Review) 가. 개 요 SFR은 사용자 요구사항 및 체계요구조건이 체계규격서에 무기체계의 기능요구조건으로 일관성 있고 정확하게 반영되었는지 확인하여 체계에 대한 기능기준선(Functional Baseline)을 설정하고, 승인된 총 사업비, 개발일정 및 수용 가능한 위험범위 안에서 요구조건을 충족하는 체계의 기본설계로 진행이 가능함을 공식적으로 확인하는 절차이다. 나. SFR 수행시기 및 업무절차 1) 수행시기 가) 체계개발 단계에서 초기 기본설계를 수행하기 전에 실시한다. 나) 사업특성에 따라 필요시 SRR과 동시 수행이 가능하나 이때는 사용자 요구사항이 체계기능요구조건으로 상세하고 정확하게 정의되어야 한다. 2) 업무절차도 다. SFR 진입기.. 2022. 9. 26.
1. 체계요구조건검토 (SRR, System Requirements Review) 체계요구조건검토 (SRR, System Requirements Review) 가. 개 요 SRR은 사용자의 요구사항이 체계요구사항명세서(SSRS)에 무기체계 개발을 위한 체계요구조건으로 일관성 있고 정확하게 반영되었는지 확인하고 승인된 총사업비, 개발일정 및 수용 가능한 위험범위 안에서 체계 요구조건을 충족하는 체계설계 단계로 진행이 가능함을 공식적으로 확인하는 절차이다. 나. SRR 수행시기 및 업무절차 1) 수행시기 가) 사용자 요구사항에 대한 이해가 완료되고 탐색개발을 통해 검증된 주요 기술 및 구성품 개발결과를 무기체계 요구조건으로 반영할 수 있는 시점에 수행한다. 나) 탐색개발과 체계개발이 분리 수행되는 사업의 경우 탐색개발 후반부에 수행하며, 탐색개발 생략 또는 탐색/체계 통합 사업의 경우에는.. 2022. 9. 26.
기술검토회의 관련 용어 정리 사용자 요구사항(Needs) 개발대상 체계 및 관련 계층구조가 만족시켜야 하는 기능 및 성능 등이 집합으로 최상위원천 요구사항인 운용요구서, 사업추진기본전략 등에 기술되어 있는 이해 관계자들의 요구 사항 체계요구조건(Requirements) 이해관계자들의 요구사항을 무기체계 개발을 위한 체계/부체계 아키텍처, HW, SW, 인터 페이스 등의 세부적인 기능과 성능 등에 관한 조건이나 능력으로 정의한 것 위험평가 및 관리자료 무기체계 획득과정에서 발생될 수 있는 잠재적인 위험을 비용, 일정, 성능 등 여러 측면에서 분석 및 평가한 결과 및 향후 관리를 위한 위험관리계획서, 필요시 EVM의 편차분석/비용분석보고서, CAIV의 목표비용관리/대책 보고서, 수명 주기비용/총 소요비용 보고서 등을 포함한 문서 기술계.. 2022. 9. 26.
기술검토회의 기술검토회의 기술검토회의란 사업관련 모든 이해관계자들이 연구개발 진행간 공식기술검토에서 단계별 설정기준에 맞게 요구사항 분석에 따른 현재의 개발 진척도를 비교·분석하여 분야별 완성도를 검토하기 위한 회의이다. 기술검토회의는 [그림 6]과 같이 사용자 요구사항 분석(SRR)에서 상세설계 (CDR)까지 하향식 세분화 과정을 통해 구체화 되며 이것은 다시 구현, 통합, 검증 및 확인의 상향식 과정을 거쳐 사용자 요구사항을 충족하는 최종 제품으로 완성된다. 이러한 점에서 기술검토회의는 전체 수명주기에 걸쳐 연구개발 진행 간 공식 기술검토 시점에서 사업에 참여하는 이해관계자들이 요구사항 분석에서 양산에 이르기까지 단계별 완성도를 평가하고 기술적 위험을 점검하며, 다음 단계로의 진입 여부를 결정하기 위해 수행하는 .. 2022. 9. 26.
Windows ] 방화벽 포트 열기 윈도우10에서 방화벽 포트 열기 2022. 9. 25.
Wireshark ] 사용해 패킷 분석하기 2022.09.25 - [DSP, MCU/STM32 (ARM Cortex-M)] - STM32 ] UDP Server STM32 ] UDP Server 출처 : https://controllerstech.com/stm32-ethenret-2-udp-server/ 위 헤더파일과 소스파일을 추가하고 while 문 전에 udpServer_init(); 함수를 추가한다. 그밖에는 이전과 설정이 똑같다. /* Private includes.. eteo.tistory.com 위 글에서 이어진다. 이더넷 선택 들어가면 뭔가 아주 빠르게 움직이고 있다. 그래서 display filter 기능을 잘 쓰는게 필요하다. 먼저 필터를 ip.addr == 192.168.0.200 로 해서 해당되는 ip 주소만 뜨게 필터링 해본.. 2022. 9. 25.
STM32 ] lwIP UDP Echo Sever, 속도 테스트 위 헤더파일과 소스파일을 추가하고 while 문 전에 udp_echoserver_init(); 함수를 추가한다. 그밖에는 이전과 설정이 똑같다. 이건 STM사 공식 LwIP_UDP_Echo_Server 예제에 포함된 파일이다. /* USER CODE BEGIN Includes */ #include "udp_echoserver.h" /* USER CODE END Includes */ //... int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initia.. 2022. 9. 25.
STM32 ] UDP Server, lwIP Raw API 출처 : https://controllerstech.com/stm32-ethenret-2-udp-server/ 위 헤더파일과 소스파일을 추가하고 while 문 전에 udpServer_init(); 함수를 추가한다. 그밖에는 이전과 설정이 똑같다. /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "udpServerRAW.h" /* USER CODE END Includes */ //... /* USER CODE BEGIN PV */ extern struct netif gnetif; /* USER CODE END PV */ //... int m.. 2022. 9. 25.
LwIP TCP/IP 스택 살펴보기 Developing applications on STM32Cube with LwIP TCP/IP stack LwIP (Lightweight IP)는 임베디드 시스템에서 널리 사용되는 오픈 소스 TCP/IP 스택이다. LwIP TCP/IP stack에서 지원하는 프로토콜 : IPv4, IPv6, ICMP, IGMP, UDP, TCP, DNS, SNMP, DHCP, PPP, ARP LwIP는 아래 3가지 API를 제공한다. Raw API : Native LwIP 로 event callback 형식으로 동작되며 최고의 성능을 제공하지만 사용하기 조금 복잡하다. Netconn API : Raw API 보다 High Level API로 RTOS 환경이 고려된 API이다. Socket API : 리눅스, 윈도우 등.. 2022. 9. 24.
STM32 ] LwIP 사용 초기설정 후 핑테스트 사용 보드 : STM32F429ZI 환경 : STM32CubeIDE 1.10.1 STM32Cube FW_F4 V1.27.1 without RTOS 먼저 클락 설정 ETH 설정 RMII 방식을 선택해준다. 이는 스키매틱을 보면 Nucleo-144 보드에는 LAN8742 라는 PHY 칩이 내장되어 있는데 이미 RMII 회로로 구성되어 있기 때문이다. Ethernet MAC 주소가 보이는데 앞의 3 byte는 생산자 코드이고 뒤의 3 byte는 시리얼 넘버이다. 디폴트로 내장된 PHY 칩을 사용할거기 때문에 Advanced Parameters 에도 건들 것이 없다. 다만 GPIO 핀 설정은 위의 스키매틱을 보면서 제대로 설정되었는지 확인해 줄 필요가 있다. 다음 Middleware에서 LwIP를 Enable .. 2022. 9. 24.
Ethernet, MAC, MII, RMII, PHY MCU에서 이더넷을 하기 위해 필요한 MAC과 PHY 그리고 MII, RMII에 대해 알아보자 아래 사진은 S/W Block과 H/W Block으로 구성된 OSI 7 Layer 이다. 그 중에 MAC과 PHY는 H/W Block에 위치해 있다. MAC은 데이터 링크 계층, PHY는 물리 계층이다. TCP/UDP 와 IP 까지는 S/W 에서 Packet을 만든 다음 전송은 MAC 과 PHY 을 통해서 하게 된다. 이때 MAC 에서 PHY로 DATA가 전송하는 통신 방법으로 MII 와 RMII 등이 있다. 전체적인 흐름은 S/W에서 TCP/IP 또는 UDP/IP Packet을 만든 다음 MAC 으로 전달하고, MAC 에서는 추가로 헤더를 붙여 MII 방식을 통해서 PHY 로 전송하면 PHY 는 디지털 데이터.. 2022. 9. 24.
Active Low / Active High / 풀업 / 풀다운 Active High 는 High 일 때 동작, Active Low 는 Low 일 때 동작 위 그림에서 Active High는 GPIO 핀 출력이 High 일 때 LED가 켜지고 Active Low는 GPIO 핀 출력이 Low 일 때 LED가 켜진다. Active High를 Normal Low, Active Low를 Normal High 라고도 표현한다. Floating 상태 floating 상태란 입력되는 전압이 0도 아니고 1도아닌 상태를 의미한다. 이 상태가 되면 예상치 못한 결과를 초래 할 수 있기 때문에 동작방식이 Active High, Active Low 인지 에 따라 풀업, 풀다운 저항을 달아준다. 풀업 저항 풀업은 플로팅상태의 전압을 끌어 올리는것을 말한다. Active Low 에서 사용한.. 2022. 9. 23.
이클립스 ] Outline View 가 보이지 않을 때 해결책 Scalability 설정에서 Disable editor live parsing 체크 해제 2022. 9. 21.
Tera Term ] 설정 저장하기 설정 된 상태에서 Setup - Save setup 클릭 teraterm 폴더 내의 .INI 파일로 설정이 저장되면서 다음 실행 시엔 바로 해당 설정으로 켜진다. 2022. 9. 20.
STM32 + MFC ] 델타 로봇 티칭 시스템 구현, 파일입출력 기능 사용 티칭 데이터 관리, 쓰레드 활용 반복작업 수행 로봇의 티칭 방법 로봇에게 가르칠 수 있는 행동의 종류는 MOVE, WAIT, PUMP 세가지가 있고 각각 속성값을 지정할 수 있다. 1. MOVE : TORQUE OFF 버튼을 누른 뒤 사람 손으로 원하는 위치로 엔드 이펙터를 이동시킨 후에 READ 버튼을 클릭하면 현재 좌표값이 입력된다. 물론 좌표값을 직접 입력하는 것도 가능하다. 2. WAIT : 직전행동 후 대기시간을 설정한다. ms 단위로 0-5000 사이의 값을 입력할 수 있다. 3. PUMP : ON 또는 OFF를 선택한다. 원하는 행동의 라디오버튼을 클릭하고 속성값이 지정되었으면 ">" 버튼을 눌러 해당 행동을 기억시킬 수 있다. 기억된 행동은 순서대로 번호가 부여되며 중간에 행동을 끼워넣거나 "" 버튼 눌렀을 때의 이벤트 처리 함수 vo.. 2022. 9. 19.
MFC ] 리스트 컨트롤에 행 단위 색상 입히기 (글자색/배경색) 메시지맵에 다음을 추가한다. BEGIN_MESSAGE_MAP(CdeltaControlDlg, CDialogEx) //... ON_NOTIFY(NM_CUSTOMDRAW, IDC_LIST_MEMORY, OnCustomdrawMyList) END_MESSAGE_MAP() notification code가 NM_CUSTOMDRAW 일 때 내 리스트 컨트롤 ID로 부터 온 WM_NOTIFY 메시지를 핸들 하고 싶다는 뜻이다. 헤더에 메시지 처리함수의 원형을 선언한다. afx_msg void OnCustomdrawMyList(NMHDR* pNMHDR, LRESULT* pResult); 메시지 처리 함수의 정의 void CdeltaControlDlg::OnCustomdrawMyList(NMHDR* pNMHDR, LR.. 2022. 9. 18.
MFC ] 쓰레드의 생성 및 시작, 종료, 일시 중단, 재개 -Dlg.h 파일에 쓰레드 핸들링을 위한 변수 선언 typedef enum { THREAD_STOP, THREAD_RUNNING, THREAD_PAUSE }_ThreadStatus; //... public: CWinThread* m_pThread; _ThreadStatus m_threadStatus; 쓰레드 함수 전역으로 정의 만약 메인 함수로 정의하려면 앞에 static 을 붙여야 한다. 함수 앞에 static을 붙이면 전역으로 취급되지만 해당 소스파일 내에서만 호출할 수 있다. UINT ThreadRepeat(LPVOID LpData) { CdeltaControlDlg* pDlg = (CdeltaControlDlg*)(LpData); vector& refList = pDlg->DC.getList();.. 2022. 9. 18.
CSV 파일 첫 글자 깨짐 현상 해결방법 아래와 같이 첫글자가 깨질 때 해결방법 엑셀 - 다른 이름으로 저장 - 파일형식을 UTF-8 이 아니라 아래 있는 것으로 선택한다. 혹은 메모장으로 열어서 인코딩을 UTF-8 에서 ANSI 로 바꾼 후 저장한다. 2022. 9. 18.
MFC ] 새 코드 요소를 반환하지 못했습니다. 구문 오류일 수 있습니다. 해결방법 프로젝트 폴더 내의 .vs 폴더를 지우고 다시 실행시키면 잘 된다. 2022. 9. 18.
TortoiseGit ] 옛날 버전으로 되돌리는 방법, reset, revert 먼저 commit 을 되돌리는 게 아니라 단지 옛날 버전의 파일을 가져다 쓰고 싶다면 더 편한 방법이 있다. 오른쪽 클릭 - TortoiseGit - Show log 클릭 원하는 버전 선택해 오른쪽 클릭 후 Export this version 클릭 그럼 압축파일로 내보내기 할 수 있다. 옛날버전의 프로젝트 파일을 가져다 쓰고 싶은 경우 이렇게 하면 된다. 그 다음에 commit 버전 되돌리는 방법은 Reset 과 Revert 두 가지가 있는데 둘이 헷갈리니까 주의가 필요하다. 1. Reset : 해당 버전으로 되돌리고 그 이후의 커밋 내역은 삭제됨 아래와 같이 4번 커밋까지 한 상황에서 2번 커밋 상태로 되돌아가고 싶다면 위해 2번을 오른쪽 클릭하고 Reset을 누른다. 이 때 Reset Type을 Ha.. 2022. 9. 17.
TMS320F28388D ] 멀티 코어 사용하기 TMS320F28388D 모듈은 C28x 듀얼 코어에 CM(Connectivity Manager) 이라고 Arm Cortex-M4 까지붙어있다. TI에서 기본 제공하는 예제는 보면 듀얼 코어를 사용하는 예제와 CM을 사용하는 예제들이 많다. 그 중에 CM이 led blink 하는 예제를 실행해보겠다. 듀얼코어를 사용하는 방법도 다르지 않다. Import 하면 다음과 같이 프로젝트 두 개가 생성된다. 아래가 CPU1이 CM을 위해 pin mux 세팅을 해주는 부분, 위가 CM이 led blink 하는 부분으로 구성되어 있다. // // Included Files // #include "driverlib.h" #include "device.h" // // Main // void main(void) { // .. 2022. 9. 16.
TI ] CCS 에서 다른 Compiler 버전 사용하기 Help - Install New Software 사이트를 선택하고 원하는 버전의 컴파일러를 찾아 설치한다. 참고로 TI 사에서 제공하는 컴파일러는 CGT(Code Generation Tools) 라고 부른다. 만역 여기 목록에 원하는 버전이 없다면 TI 공홈에서 직접 다운받아도 된다. C2000 과 ARM core 컴파일러 다운로드 사이트 : https://www.ti.com/tool/C2000-CGT https://www.ti.com/tool/download/ARM-CGT 설치후 Window - Preference Refresh를 누르고 원하는 컴파일러 버전을 선택 후 Apply를 누른다. Project 우클릭 - Properties - General 에서 Compiler version을 선택할 수 .. 2022. 9. 16.
Warning: skipping non-radio button in group 경고 제거하는 법 큰 문제는 없지만 보기 거슬리니 제거하는 방법은 다음과 같다. CTRL + D 를 누르면 각 컨트롤의 번호를 볼 수 있고 이 상태에서 클릭을 하면 1부터 순차적으로 다시 지정할 수 있다. 그룹의 라디오 버튼을 순차적으로 눌러주고 마지막 라디오 버튼의 다음 번호인 컨트롤의 속성-그룹을 True 로 바꿔주면 해당 경고문구는 사라진다. 2022. 9. 14.