[Vitis] UART 송신 명령어 정리 Zynq를 사용하여 UART 전송을 하는 방법에서 데이터 패킷 저장해서 보내는 방법과 한 바이트씩 전송하는 방법이 있다. 1. 데이터 패킷 전송 데이터 배열에 한바이트씩 저장한 후 한번에 전송한다. XUartPs_Send(&UartPs0, UART0_TX_Data,9) UartPs0에 UART0_TX_Data 배열 데이터를 9개 보낸다. 2. 데이터 1byte 전송 데이터를 즉시 1byte를 전송한다. XUartPs_SendByte(XPAR_PS7_UART_0_BASEADDR, 0xAA); 1번째 인수는 BaseAddress이고 뒤에 1byte 전송 데이터를 넣는다. BaseAddress는 xparameters.h에서 확인 가능하다. vivado에서 통신을 연결하면 xparameters.h에 정의가 되니.. 전자 이야기/Zynq 2년 전
[Vitis] Standard In/Out 설정 (print문 설정) Zynq의 ARM을 사용하다보면 기본 입출력 함수인 print 문을 사용하면 편하다. EV 보드 셋팅을 해서 사용하면 보드 자체에서 기본 UART를 설정해서 사용하고 그 UART를 표준 입출력으로 설정이 되어 있다. 내가 사용하는 Zybo 보드의 경우 UART1이 JTAG 프로그램 포트와 통신 겸용이라 표준 입출력이 UART1으로 설정되어 있다. 그러나 UART0를 사용해서 표준 입출력을 사용해야 하는 경우는 이걸 바꾸고 싶을 때 설정을 바꿔주면 표준 입출력이 UART0로 바꿀 수 있다. 표준 입출력을 바꾸는 방법은 wrapper에서 설정 할 수 있다. Explorer 창에서 wrapper에서 platform.spr로 진입하던지 혹은 Assistant에서 오른쪽 마우스버튼 후 'Open Platform .. 전자 이야기/Zynq 2년 전
[Vitis Err] Invalid project path: Include path not found Description Resource Path Location Type Invalid project path: Include path not found (C:\_Xilinx\Vitis\2022.1\gnu\aarch32\nt\gcc-arm-none-eabi\aarch32-xilinx-eabi\usr\include) 위와 같은 에러가 날 때가 있는데 참조하는 부분의 경로가 다를 때 나온다. 나 같은 경우는 두 명이 같은 프로젝트를 진행하고 있는데 같이 하는 사람이 프로그램을 설치한 경로를 바꿔서 설치하여 내 PC에서 프로젝트를 실행하면 에러가 뜬다. 이때 경로를 수정해줘야 하는데 간단히 해결 방법이 있다. .metadata\.plugins\org.eclipse.cdt.make.core\?????.sc 프로젝.. 전자 이야기/Zynq 2년 전
[Zynq] Zynq Digilent 보드 JTAG 연결 안될 때(ZyboZ7) Zybo 보드를 사용해서 Zynq를 사용할 때는 따로 JTAG 다운로더가 필요없이 그냥 USB의 연결만으로 JTAG 다운 및 디버깅이 된다. JTAG 회로 Zybo 보드에 있기 때문인데 처음 Xilinx 프로그램을 설치하면 이게 연결이 안되어서 고생할 때가 있다. 첨에는 USB 케이블 문제인가 해서 이 케이블 저 케이블 바꿔서 운 좋게 성공하는 경우도 있지만 내 경우에는 연결은 잘 되었는데 안되는 경우였다. 뭐 상식적으로 안되는 이유는 역시 드라이브 문제이다. 사실 나는 이 경우를 쉽게 알 수 있었던 것이 원래 되던 보드에 되던 케이블인데 컴터를 다시 설치하고 Xilinx 프로그램을 다시 설치하니 안되었던 것이라서 드라이버 문제인걸 알 수 있었다. 사실 윈도를 밀은게 문제였던 것이다. 여튼 확인 방법은 .. 전자 이야기/Zynq 2년 전
[Zynq] Vivado 테스트 보드 교체 방법 및 절차 흔한 경우는 아니지만 보드를 교체하여 프로젝트를 진행하는 경우가 있다. 뭐 zynq EV 보드가 비싸기 때문에 많은 수량을 구매하기에는 부담이 되고 몇가지 종류 보드를 가지고 있는데 협업을 할 경우 다른 보드로 작업을 하는 경우가 생길 수 있다. 여튼 난 ZyboZ7-10과 ZyboZ7-20 그리고 CoraZ7-10 보드를 가지고 있는데 이런 상황이 벌어져서 보드를 바꿔서 할 일이 생겼다. 이 참에 보드 교체시 수행하는 절차를 정리하고 공유하기로 맘먹고 포스팅을 해 본다. 첫째로 프로젝트를 열고 Project device를 교체한다. 여기서 ZyboZ7-10을 ZyboZ7-20으로 바꾼다. 바꾸고 확인을 누르면 Create Run 창이 뜨는데 그냥 OK를 누른다. 이렇게 하고 기존에 만들어 놓은 블록 디.. 전자 이야기/Zynq 2년 전
[Zynq] CoraZ7 MicroSD Boot Digilent의 CoraZ7의 경우는 Zybo 보드와 다르게 Flash를 장착하고 있지 않다. 그래서 Cora의 경우는 MicroSD를 사용해서 부팅을 해야 한다. 부팅 방법에 대해서 디질런트 사의 Cora 설명서에 보면 나와있다. 1. FAT32로 MicroSD를 포맷한다. 2. Boot Image를 생성한다. Vitis에서 프로젝트에서 오른쪽 버튼을 누르면 'Create Boot Image'를 선택하여 생성한다. - 생성 프로그레스 바가 나오지 않는 경우는 기존 .bif 파일이 있어서 그 정보를 그대로 읽어 오는 것이다. 정보가 잘못되어 있다면 .bif 파일을 지우고 빌드를 새로 하고 다시 진행하면 .bif 파일이 새로 만들어지며 Boot에 맞는 정보로 다시 셋팅된다. 3. 만들어진 부팅 이미지의 .. 전자 이야기/Zynq 2년 전
[Zynq] CoraZ7 GPIO Example CoraZ7 보드를 이용하여 GPIO 테스트를 해보았다. Vivado에서 Block은 AXI 두개를 연결했고 버튼이 2개 있는데 일부러 사용자 지정으로 해서 해보았다. BTN0와 BTN1은 Custom으로 지정하여 XDC 파일에서 연결하였다. 이 후 Vitis에서 작업한 내용을 보면 GPIO를 셋업하고 GPIO를 사용하기 쉽게 define해 주었다. 코드 내용은 버튼 1을 누르면 RGB LED가 RGB1이 순차적으로 0.5초 딜레이를 가지고 변화한다. 버튼 2는 RGB2가 순차적으로 변화한다. 상태변화가 귀찮아서 그냥 슬립함수에 슬립을 사용해서 구현했다. /****************************************************************************** * * .. 전자 이야기/Zynq 3년 전
[Vitis] Vitis 한글 주석 사용하기 앞서 STMCubeIDE에서도 한글 주석 사용하기라는 포스팅을 한 적이 있다. [STM32] STM32CubeIDE 한글 주석 사용하기 STM32든 어느 IDE를 사용하더라도 한국인이 우리는 좀 불편함을 격는 경우가 많다. 일단 코딩은 영문으로 짜기 때문에 문제가 없긴 하지만 주석을 적을 때는 좀 불편함이 많다. 내가 사용하는 ID electric-lab.tistory.com 요즘 IDE 들이 다 이클립스 기반으로 돌아가서 그러는지 환경이 동일하다....즉, Vitis도 이클립스 환경이고 같은 방법으로 한글 주석이 사용이 가능하다는 것이다. 마찬가리로 Priferences를 선택한다. General->Content Types->Text->Default encoding에 UTF-8을 넣는다. Update를.. 전자 이야기/Zynq 3년 전
[Zynq] ZyboZ7-20 Uart Interrupt Zynq EV 보드인 Zybo Z7 20 보드를 사용하여 Uart Interrupt를 구현한 예제이다. Uart와 GPIO 정도만 살리고 나머지 기능은 다 OFF하고 진행한다. Vitis에서도 기본으로 설정한 후 아래 코드대로 진행한다. /***************************** Include Files *******************************/ #include "xparameters.h" #include "xplatform_info.h" #include "xuartps.h" #include "xil_exception.h" #include "xil_printf.h" #include "xscugic.h" /************************** Constant Defi.. 전자 이야기/Zynq 3년 전