일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 임베디드시스템
- single copy atomic size
- 스텝모터
- Verilog
- APB3
- Multiple transaction
- atomic access
- Interoperability
- stepmotor
- AXI3
- FGPA #반도체설계 #verilog #시프트레지스터 #uart
- Low-power Interface
- ABMA
- 구조적모델링
- AMBA
- FPGA
- ERROR RESPONSE
- SoC
- ordering model
- 레지스터슬라이스
- Multiple outstanding
- tff
- QoS
- 카운터
- out-of-order
- STM32
- 펌웨어
- cacheable
- T flip flop
- AXI4
- Today
- Total
목록전기전자 (15)
CHIP KIDD

ARM을 이용해 Circular Queue 를 구현하는 자료입니다. 위 그림에서 설명하는 단계대로 코드를 구현해보겠습니다. 중요한 점은 Full 과 Empty 상태를 알아내는 것. + Rear와 Front는 항상 붙어다니는 존재이기에 TypeDef Struct 를 통한 구조체로 만드는게 편리합니다. + 포인터를 이용해 직접 메모리에 접근하겠습니다. ( * / -> / &) Queue.c /* * Queue.c * * Created on: May 6, 2021 * Author: kccistc */ #include "Queue.h" void QueInit(QUEUE *que) { que->rear = 0; que->front = 0; } uint8_t isQueFull(QUEUE *que) { return ..
보호되어 있는 글입니다.

WinForm 추가하는 법 WinForm 창 이름 설 (속성) WinForm Icon 추가 및 변경 SubForm 추가하여 입력값 불러오기 1) 각 창들마다 이름 설정하여서 코딩시 변수로 사용한다. 각 창들 오른쪽 속성누르면 [디자인 - Name] 에서 값변경할 수있다. 2) 버튼 클릭시 동작에 대한 설정이다. 확인 버튼 클릭하면 어떻게 될지에 대한 코드를 아래에 나와있다. (더블 클릭시 코드 변경 란 있음) 3) 입력값을 이용할 떄 NubericUpDown이용하면 된다. 이때 주의할점은 접근시 Private에서 Public으로 해줘야 써먹을수 있다는점 (중요하다.) 이부분은 메인 WinForm 코드란에서 입력값을 불러올 때 사용하는 코드다. 변수 지정하고, 매소드에서 값불러오면 됨. 아래는 영상처리 전..

설계 순서도 계획 => 분석 => 설계 => 구현(코딩) => 유지보수 * 분석 중요 1. Raw Data 사진파일을 메모리에 로딩시킴 2. In Image를 영상처리 알고리즘 처리하여 Out Image 로저장 3. WinForm을 이용하여 Out Image를 Bitmap에 저장하여 출력/저장한다. 결과 윈폼 설정 단계부터 Code까지 1) 콘솔앱이 아닌 Windows Forms 으로 새 프로젝트 생성 2) 아래와 같이 WinForm 창이 뜬다. 도구상자 왼쪽에 띄워준다. (C#의 장점) ,, MFC로도 하는데 훨씬 복잡하다. 3) 만들기 메뉴바를 추가한뒤 더블클릭하면 클릭시 동작하는 함수를 작성하는 코드란이 뜬다. 아래 세개를 위의 그림에 나와있듯이 찾은뒤 더블클릭하면 아래처럼 배열된다. WinForm..

영상처리 기본 알고리즘 1. 바이너리 파일 -> 그림파일 -> 픽샐마다 0~255 사이의 밝기값 존재 2. 바이너리 파일 처리 알고리즘 1) 파일열고 2)파일 읽고 처리 3)파일닫기 3. 아래는 파일 처리 알고리즘과, 파일 불러오고 닫는 과정을 구현한 것. //위의 기준 127대신에 중간값으로 처리 string fullName2 = "C:\\images\\Etc_Raw(squre)\\512\\LENNA512.raw"; BinaryReader br2 = new BinaryReader(File.Open(fullName2, FileMode.Open)); //2단계 파일 처리하기...내맘대로 //파일 --> 메모일(배열) int ROW2 = 512, COL2 = 512; byte[,] image2 = new b..
using System; using System.IO; namespace Day02_03_바이너리_파일_처리 { class Program { static void printImage(byte[,] img) { Console.WriteLine(); for (int i = 0; i < 10; i++) { for (int k = 0; k < 10; k++) { Console.Write("{0:d3} ", img[i, k]); } Console.WriteLine(); } } static void Main(string[] args) { /// 1단계 : 파일 열기 string fullName = "C:\\images\\Etc_Raw(squre)\\512\\LENNA512.raw"; BinaryReader br =..
using System; using System.IO; namespace Day02_02_파일처리 { class Program { static void Main(string[] args) { // *파일처리의 3단계 // 파일 열기 --> 파일읽기/쓰기(반복) --> 파일 닫기 // * 파일의 종류 : 텍스트 파일, 바이너리 파일 // * 텍스트 파일 : 메모장에서 열어서 글자처럼 보임. // --> 1바이트가 의미가 있음. // * 바이너리 : 비트가 의미. 2비트 색상, 3비트 크기,7 비트..... string fullName = "c:/temp/data1.txt"; string writeName = "c:/temp/data2.txt"; StreamReader sr = new StreamReader..
using System; namespace Day02_01_2차원_배열 { class Program { // 생존범위 : 지역변수, 전역변수(인스턴스 변수, 클래스 변수) static void printImage(int[,] img) { Console.WriteLine(); for (int i = 0; i < 10; i++) { for (int k = 0; k < 10; k++) { Console.Write("{0:d3} ", img[i, k]); } Console.WriteLine(); } } static void Main(string[] args) { Random r = new Random(); // 128x128, 256x256, 512x512 int ROW = r.Next(1, 513), COL ..