embeded/FPGA - XILINX2023. 4. 24. 13:55

 

 

Internal configuration access includes the ICAP (all devices), PCAP (Zynq-7000 SoC devices), and MCAP (UltraScale and UltraScale+ devices through PCIe).

[링크 : https://docs.xilinx.com/r/2021.2-English/ug909-vivado-partial-reconfiguration/Partial-Bitstreams]

[링크 : https://support.xilinx.com/s/article/63419?language=en_US]

'embeded > FPGA - XILINX' 카테고리의 다른 글

xilinx vivado uart ip  (0) 2023.05.12
xilinx bram uram  (0) 2023.05.12
vivado 설치 하려고 했더니.  (0) 2023.01.08
흐음.. 끌리네?  (0) 2022.11.02
xvc - xilinx virtual cable  (0) 2021.08.24
Posted by 구차니
embeded/FPGA - ALTERA2023. 3. 28. 19:45

 

2. Executable code is stored in the EPCS. This is according to your second attempt: 
 
--- Quote Start ---  
I changed the reset vector to EPCS controller, it still doesn't work 
--- Quote End ---  
 
In this case the epcs_flash_controller is nesessary in your system. The reset vector must point to the epcs_flash_controller, which contains the bootcopier code. The exeption vector must point to On-Chip RAM because your .text segment is still located there. 
After power is up, NiosII start the execution of the bootcopier code from epcs_flash_controller internal ROM. This bootcopier gets application executible code from EPCS and stores it into On-Chip RAM. After bootcopier has finished its work the control passes to the application executible code in the On-Chip RAM.

[링크 : https://community.intel.com/t5/Nios-II-Embedded-Design-Suite/how-to-embeded-the-Nios-software-into-FPGA-sof-file/m-p/150842]

 

1.5.5. Nios II Processor Application Copied from EPCS Flash to RAM Using Boot Copier
The EPCS address space is not mapped into the Altera Avalon EPCS Flash Controller’s Avalon MM slave interface. Instead, read or write accesses are done through CSRs. Upon system reset, the EPCS device needs to be initialized before usage.

For these reasons, the EPCS controller-based boot copier is required for initializing the EPCS device and copying the Nios II application to RAM for execution.

The EPCS controller instantiates a block of boot ROM internally at its base address (offset 0x0, just before EPCS controller’s CSRs) for storing the boot copier. Nios II reset vector offset must set to EPCS controller base address, such that upon system reset the boot copier is executed first to initialize the EPCS controller and device.

[링크 : https://www.intel.com/content/www/us/en/docs/programmable/683820/current/nios-ii-processor-application-copied-37722.html]

[링크 : https://manuals.plus/ko/Intel/1-5-1-nios-ii-booting-general-flow-manual#axzz7xFS1je7Y]

 

Nios® II 플래시 프로그래머를 사용할 때 --csr 옵션은 무엇입니까?

설명
직렬 플래시 컨트롤러 II IP와 함께 Nios II 플래시 프로그래머(현재 "quartus_pgm --nios2")를 디자인에 사용할 때 명령 문자열에 새로운 옵션 "--csr"를 지정해야 합니다.

해결 방법
--csr 옵션은 직렬 플래시 컨트롤러 II IP 코어의 "avl_csr" 인터페이스 주소로 지정되어야 합니다.  예를 들어 플랫폼 디자이너 시스템에서 "avl_csr" 인터페이스의 주소 범위가 0x1000_0000 0x1000_003F 경우 "--csr=0x10000000"을 사용하십시오.

이 기능은 Nios II 플래시 프로그래머 사용자 가이드의 향후 버전에서 완전히 문서화될 것으로 예상됩니다.

[링크 : https://www.intel.co.kr/content/www/kr/ko/support/programmable/articles/000086366.html]

'embeded > FPGA - ALTERA' 카테고리의 다른 글

altera uart ip  (0) 2023.05.14
altera - partial reconfigure  (0) 2023.04.24
Nios V  (0) 2021.11.01
IOFS - Intel Open FPGA Stack  (0) 2021.07.06
oneAPI Quartus pro 필요?  (0) 2021.04.06
Posted by 구차니
embeded/i.mx 8m plus2023. 3. 23. 10:46

크아.. 볼게 너무 많아 ㅠㅠ

그런데 openAMP가 나오는게 먼가.. 쎄~~~하다 -_-

 

linux / cortex-A / rpmsg <-> rtos or baremetal / cortex-M / rpmsg-lite

 

성능 향상은 openAMP와는 넘사벽일 수도 있는 설정이 존재하고

Core A와 Core B 이기종(heterogeneous) 장치간의 통신을 지원한다.

[링크 : https://github.com/nxp-mcuxpresso/rpmsg-lite]

'embeded > i.mx 8m plus' 카테고리의 다른 글

nxp i.mx8mp win iot part 2  (0) 2023.05.26
nxp i.mx8mp win iot  (0) 2023.05.26
i.mx8m plus cortex-m7 part.2  (0) 2023.02.23
i.mx8m plus cortex-m7  (0) 2023.02.23
i.mx8m plus win iot 실행  (0) 2023.02.23
Posted by 구차니
embeded/esp322023. 3. 13. 19:33

특이하게(?)

abs

add2,4,8  y = x + 2

이런 명령어가 추가되어있다

 

다만 neon 같은 simd 명령어는 없고

shift, add, sub는 있지만 mul, div가 없다.

 

https://0x04.net/~mwk/doc/xtensa.pdf

https://www.esp32.com/viewtopic.php?t=6477

'embeded > esp32' 카테고리의 다른 글

esp32 bt hid  (0) 2023.11.30
esp32-cam에 lcd 달기  (0) 2023.11.18
esp32cam ptz 카메라 완료  (0) 2021.12.30
esp32 servo와 flash  (0) 2021.11.28
esp32 flash on/off 버전  (0) 2021.11.27
Posted by 구차니
embeded/ARM2023. 2. 27. 23:10

이름대로 MCU를 위한 공통 API 라고 보면 될 듯.

칩 제조사 마다 독자적인 C API를 제공하지만, 칩이 달라지면 그대로 쓸 수 없는데 CMSIS를 쓰면 다른 벤더에서도

소스 레벨에서는 문제없이 쓸 수 있을 것 같긴하다.

[링크 : https://developer.arm.com/tools-and-software/embedded/cmsis]

 

+

cordic 찾다 cmsis sw divider 라는게 보이네.

[링크 : https://arm-software.github.io/CMSIS_5/DSP/html/group__divide.html]

[링크 : https://www.iar.com/kr/knowledge/learn/programming/using-iar-embedded-workbench-for-arm-and-the-cmsis-dsp-library/]

'embeded > ARM' 카테고리의 다른 글

cortex a9 ptm  (0) 2023.07.21
openOCD와 jtag  (0) 2023.07.06
i.mx8m plus arm trust zone  (0) 2023.02.24
ampere altra / 기가바이트 R272-P30 / 우분투  (0) 2023.02.03
arm asm rbit(비트 뒤집기)  (0) 2022.08.26
Posted by 구차니
embeded/ARM2023. 2. 24. 10:31

 

For i.MX 8M EVK, to build imx-boot image by using imx-mkimage, perform the following steps:
1. Copy and rename mkimage from u-boot/tools/mkimage to imx-mkimage/iMX8M/mkimage_uboot.
2. Copy u-boot-spl.bin from u-boot/spl/u-boot-spl.bin to imx-mkimage/iMX8M/.
3. Copy u-boot-nodtb.bin from u-boot/u-boot-nodtb.bin to imx-mkimage/iMX8M/.
4. Copy imx8mq-evk.dtb (for i.MX 8M Quad EVK), imx8mm-evk.dtb (for i.MX 8M Mini LPDDR4 EVK),
     imx8mm-ddr4-evk.dtb (for i.MX 8M Mini DDR4 EVK), or
     imx8mp-evk.dtb (for i.MX 8M Plus LPDDR4 EVK) from u-boot/arch/arm/dts/ to imx-mkimage/iMX8M/.
5. Copy bl31.bin from Arm Trusted Firmware (imx-atf) to imx-mkimage/iMX8M/.
6. Copy firmware/hdmi/cadence/signed_hdmi_imx8m.bin from the firmware-imx package to imx-mkimage/iMX8M/.
7. For i.MX 8M Quad and i.MX 8M Mini LPDDR4 EVK, copy lpddr4_pmu_train_1d_dmem.bin, 
    lpddr4_pmu_train_1d_imem.bin,
    lpddr4_pmu_train_2d_dmem.bin, and
    lpddr4_pmu_train_2d_imem.bin from firmware/ddr/synopsys of the firmware-imx package to imx-mkimage/ iMX8M/.
For i.MX 8M Mini DDR4 EVK, copy
    ddr4_imem_1d.bin,
    ddr4_dmem_1d.bin,
    ddr4_imem_2d.bin, and
    ddr4_dmem_2d.bin from firmware/ddr/synopsys of the firmware-imx package to imx-mkimage/iMX8M.
For i.MX 8M Plus LPDDR4 EVK, copy
    lpddr4_pmu_train_1d_dmem_201904.bin,
    lpddr4_pmu_train_1d_imem_201904.bin,
    lpddr4_pmu_train_2d_dmem_201904.bin, and
    lpddr4_pmu_train_2d_imem_201904.bin from firmware/ddr/synopsys of the firmware-imx package to imx-mkimage/iMX8M/.
8. For i.MX 8M Quad EVK, run make SOC=iMX8M flash_evk to generate flash.bin (imx-boot image) with HDMI FW included.
For i.MX 8M Mini LPDDR4 EVK, run make SOC=iMX8MM flash_evk to generate flash.bin (imx-boot image).
For i.MX 8M Mini DDR4 EVK, run make SOC=iMX8MM flash_ddr4_evk to generate flash.bin (imx-boot image).
For i.MX 8M Plus LPDDR4 EVK, run make SOC=iMX8MP flash_evk to generate flash.bin (imx-boot-image).
To boot with eMMC fasboot on i.MX 8M Quad EVK and i.MX 8M Mini LPDDR4 EVK,
use flash_evk_emmc_fastboot target.

 

아래 파일은 어디서 봐야하냐..

i.MX 8M Plus:
    setenv fdtfile imx8mp-evk-rpmsg-lpv.dtb
/run/media/mmcblk1p1# ls -al *rp*
-rwxrwx--- 1 root disk 64363 Apr  5  2011 imx8mp-evk-rpmsg.dtb
-rwxrwx--- 1 root disk 19064 Apr  5  2011 imx8mp_m7_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin
-rwxrwx--- 1 root disk 18544 Apr  5  2011 imx8mp_m7_TCM_rpmsg_lite_str_echo_rtos.bin

[링크 : https://www.nxp.com/docs/en/user-guide/IMX_LINUX_USERS_GUIDE.pdf]

'embeded > ARM' 카테고리의 다른 글

openOCD와 jtag  (0) 2023.07.06
cmsis (Common Microcontroller Software Interface Standard)  (0) 2023.02.27
ampere altra / 기가바이트 R272-P30 / 우분투  (0) 2023.02.03
arm asm rbit(비트 뒤집기)  (0) 2022.08.26
vfp, neon cycle  (0) 2022.01.23
Posted by 구차니
embeded/i.mx 8m plus2023. 2. 23. 17:41

아래의 경로에서 build_all.sh 을 통해 리눅스에서 빌드를 시도하면 에러가 나는데

./nxp/imx8plus/cortex-m7/SDK_2_13_0_EVK-MMP/boards/evkmimx8mp/demo_apps/hello_world/armgcc$ ./build_all.sh 
CMake Error at /home/falinux/바탕화면/nxp/imx8plus/cortex-m7/SDK_2_13_0_EVK-MIMX8MP/tools/cmake_toolchain_files/armgcc.cmake:16 (MESSAGE):
  ***Please set ARMGCC_DIR in envionment variables***
Call Stack (most recent call first):
  /usr/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:91 (include)
  CMakeLists.txt:10 (ENABLE_LANGUAGE)

 

아래와 같이 추가해주면 일단 빌드가 문제없이 된다.

$ export ARMGCC_DIR=/usr

 

imx8 SD 카드의 boot 파티션에 release/hello_world.bin 을 복사해서 넣고

아래의 문장을 uboot 에서 따라하면

If the hello_world.bin is made from the debug/release target, which means the binary file will run at TCM, use the following commands to boot:
• fatload mmc 1:1 0x48000000 hello_world.bin;cp.b 0x48000000 0x7e0000 20000;
• bootaux 0x7e0000

출처 : Getting Started with MCUXpresso SDK for EVK-MIMX8MP

 

아래와 같이 /dev/ttyUSB3 포트를 통해서 hello world. 가 출력된다.

 

다만.. 이녀석은 TCM 에서 빌드되어 실행되기로 상정(?)된 파일이기 때문에 리눅스의 sysfs를 통해서 실행하려면

어떤 바이너리를 통해 실행해야 하려나?

b. If the hello_world.bin is made from the ddr_debug/ddr_release target, which means the binary file runs at DRAM, use the following commands:
• fatload mmc 1:1 0x80000000 hello_world.bin
• dcache flush
• bootaux 0x80000000

c. If the hello_world.bin is made from the flash_debug/flash_release target, which means the binary file runs at QSPI/XIP, use the following
commands:
• sf probe
• sf read 0x80000000 0 4
• fatload mmc 1:1 0x80000000 flash.bin
• dcache flush
• sf erase 0 0x100000
• sf write 0x48000000 0 0x100000
• bootaux 0x8000000

Note: If the Linux OS kernel runs together with M7, make sure the correct dtb file is used. This dtb file reserves resources used by M7 and avoids the Linux kernel from configuring them. Use the following command in U-Boot before running the kernel:
setenv fdtfile ‘imx8mp-evk-rpmsg.dtb’

 

 

+

ddr_release / flash_release의 파일을 실행하려고 했을 때

# echo start > /sys/class/remoteproc/remoteproc0/state
[  193.353375] remoteproc remoteproc0: powering up imx-rproc
[  193.359090] remoteproc remoteproc0: Booting fw image hello_world.elf, size 217076
[  193.366735] remoteproc remoteproc0: bad phdr da 0x80000000 mem 0x2a8
[  193.373157] remoteproc remoteproc0: Failed to load program segments: -22
[  193.380092] remoteproc remoteproc0: Boot failed: -22
-sh: echo: write error: Invalid argument
root@imx8mpevk:/lib/firmware# echo -n hello_world.bin > /sys/class/remoteproc/remoteproc0/firmware       
root@imx8mpevk:/lib/firmware# echo start > /sys/class/remoteproc/remoteproc0/state
[  204.092891] remoteproc remoteproc0: powering up imx-rproc
[  204.098514] remoteproc remoteproc0: Image is corrupted (bad magic)
[  204.104760] remoteproc remoteproc0: Boot failed: -22
-sh: echo: write error: Invalid argument

 

relase의 파일을 실행하려 했을 때. 되는거야 안되는거야.. 일단 cortex-m7용 디버그 포트로 출력은 안된다.

# echo -n hello_world.elf > /sys/class/remoteproc/remoteproc0/firmware 
# echo start > /sys/class/remoteproc/remoteproc0/state
[  366.495958] remoteproc remoteproc0: powering up imx-rproc
[  366.501775] remoteproc remoteproc0: Booting fw image hello_world.elf, size 217076

'embeded > i.mx 8m plus' 카테고리의 다른 글

nxp i.mx8mp win iot  (0) 2023.05.26
rpmsg-lite  (0) 2023.03.23
i.mx8m plus cortex-m7  (0) 2023.02.23
i.mx8m plus win iot 실행  (0) 2023.02.23
i.mx8 tensilica dsp  (0) 2023.02.07
Posted by 구차니
embeded/i.mx 8m plus2023. 2. 23. 16:27

아래 링크는 i.mx8m mini용 인듯 하니 imx9mp로 바꾸어서 시도하면 될 듯.

u-boot=> editenv fdt_file
edit: imx8mm-evk-rpmsg.dtb
u-boot=> boot

[링크 : https://community.nxp.com/t5/i-MX-Processors/imx-rpmsg-tty-not-working-on-IMX8M-EVK/m-p/1149859]

 

기본값은 imx8mp-evk.dtb이고 변경할 것은 imx8mp-evk-rpmsg.dtb

u-boot=> pri fdtfile 
fdtfile=imx8mp-evk.dtb


u-boot=> setenv fdtfile imx8mp-evk-rpmsg.dtb
u-boot=> boot

매번 바꾸기 귀찮으면 saveenv 하면 된다.

 

리눅스 에서 rproc 을 통해 MCU를 구동하려고 할 때, 설정된 파일이 존재하지 않으면 일단 아래와 같은 에러가 나고 죽는다.

root@imx8mpevk:/sys/class/remoteproc/remoteproc0# cat firmware 
rproc-imx-rproc-fw
root@imx8mpevk:/sys/class/remoteproc/remoteproc0# echo start > state
[   39.920224] remoteproc remoteproc0: powering up imx-rproc
[   39.925719] remoteproc remoteproc0: Direct firmware load for rproc-imx-rproc-fw failed with error -2
[   39.934945] remoteproc remoteproc0: Falling back to sysfs fallback for: rproc-imx-rproc-fw
[   39.943951] remoteproc remoteproc0: request_firmware failed: -2
[   39.949902] remoteproc remoteproc0: Boot failed: -2
-sh: echo: write error: No such file or directory

 

da request 어쩌구 하는데 powering up을 보면 imx-dsp-rproc

이 경우는 dtb에서 cortex-m7을 살리지 않아 tensilia DSP만 살아있어서 발생하는 에러로 추정.

root@imx8mpevk:/sys/class/remoteproc/remoteproc0# echo start > state
[  659.684024] remoteproc remoteproc0: powering up imx-dsp-rproc
[  659.690141] remoteproc remoteproc0: Booting fw image imx8mp_m7_TCM_rpmsg_lite_pingpong_rtos_linux_rem2
[  659.714561] remoteproc remoteproc0: Registered carveout doesn't fit da request
[  659.721820] remoteproc remoteproc0: Failed to process resources: -12
[  659.728265] remoteproc remoteproc0: Boot failed: -12
-sh: echo: write error: Cannot allocate memory

[링크 : https://community.nxp.com/t5/i-MX-Processors/imx8qmmek-rpmsg-remoteproc-remoteproc-and-rpmsg-fail/m-p/1401590]

 

실행이 되는거 같긴 한데...

디버그 시리얼 쪽으로도 무언가 출력되는게 안보이는데 머가 문제이려나..

그리고 시스템 자체가 멈춘다.. 뭐야.. (LF_v5.10.72-2.2.0_images_IMX8MPEVK)

root@imx8mpevk:/sys/class/remoteproc/remoteproc0# echo imx8mp_m7_TCM_hello_world.elf > firmware 
root@imx8mpevk:/sys/class/remoteproc/remoteproc0# echo start > state
[   48.529889] remoteproc remoteproc0: powering up imx-rproc
[   48.539233] remoteproc remoteproc0: Booting fw image imx8mp_m7_TCM_hello_world.elf, size 152688

 

+

# modprobe imx_rpmsg_pingpong
# modprobe imx_rpmsg_tty
# echo hello > /dev/ttyRPMSG30

[링크 : https://www.embeddedartists.com/wp-content/uploads/2019/03/iMX8M_Working_with_Cortex-M.pdf]

'embeded > i.mx 8m plus' 카테고리의 다른 글

rpmsg-lite  (0) 2023.03.23
i.mx8m plus cortex-m7 part.2  (0) 2023.02.23
i.mx8m plus win iot 실행  (0) 2023.02.23
i.mx8 tensilica dsp  (0) 2023.02.07
i.mx8m plus win iot  (0) 2023.02.02
Posted by 구차니
embeded/i.mx 8m plus2023. 2. 23. 15:01

음.. 하라는대로 했는데 USB 키보드가 인식이 안되서 먼가 해볼수가 없다.

드라이버를 좀더 추가해서 어떻게 해야하려나?

 

일단은 HDMI 연결하면 아래와 같이 먼가 하나 나오고

 

시리얼 포트로는 baudrate가 안 맞는건지 깨진 문자만 나온다.

 

------------------------------------------------------

※ NXP 로그인이 필요한 서비스임.

 

Step 1. 귀찮으니(!) BSP Prebuild Binaries 다운로드

[링크 : https://www.nxp.com/design/software/embedded-software/i-mx-software/windows-10-iot-enterprise-for-i-mx-applications-processors:IMXWIN10IOT]

 

Step 2. 귀찮으니(!) 위의 페이지에서 "i.MX Windows 10 IoT Enterprise Quick Start Guide​" 클릭!

[링크 : https://www.nxp.com/docs/en/quick-reference-guide/IMXWQSG.pdf]

 

Step 3. 귀찮으니(!) Step 2의 내용중 아래의 링크를 클릭하여 CFImager를 다운로드

[링크 : https://www.nxp.com/webapp/Download?colCode=CF_IMAGER]

 

Step 4. 2단계에서 받은 것을 압축해제

 

Step 5. 3 단계에서 받은 파일에서 CFImage.exe를 flash_bootloader.cmd 와 동일 경로상에 복사

 

Step 6. 윈도우에서, 시작 - cmd 로 콘솔 열고, flash_bootloader.cmd 경로에서 아래의 명령어 입력 f: 는 sd 카드 드라이브 이다.

flash_bootloader.cmd /device MX8M_PLUS_EVK /target_drive f:

 

FAT32로 포맷했는데 RAW로 바뀌길래 한번 확인해봐도.. 먼지 알 순 없다.

 

'embeded > i.mx 8m plus' 카테고리의 다른 글

i.mx8m plus cortex-m7 part.2  (0) 2023.02.23
i.mx8m plus cortex-m7  (0) 2023.02.23
i.mx8 tensilica dsp  (0) 2023.02.07
i.mx8m plus win iot  (0) 2023.02.02
imx 8m plus NPU 에러 추적  (5) 2021.10.14
Posted by 구차니
embeded/jetson2023. 2. 17. 15:27

5V는 내어주는데 3.3V는 테스터로 찍어보니 0.5V 이런식으로 나오길래

전자회로 쪽은 배터리나 외부 전원을 통해 공급되는 것 같지 않아, 라즈베리 파이에서 3.3V를 공급해주고 i2c로 읽어보니

 

아래와 같이 먼가 나오긴 한다. 근데 0x41, 0x70 넌 누구냐?

$ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- -- 
40: 40 41 -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: 60 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: 70 -- -- -- -- -- -- --       

 

INA219 - Zerø-Drift, Bidirectional Current/Power Monitor With I 2C Interface

[링크 : https://www.waveshare.com/w/upload/1/10/Ina219.pdf]

 

PCA9685 16-channel, 12-bit PWM Fm+ I2C-bus LED controller

[링크 : https://www.waveshare.com/w/upload/6/68/PCA96_datasheet.pdf]

 

ADS111x Ultra-Small, Low-Power, I 2C-Compatible, 860-SPS, 16-Bit ADCs

[링크 : https://www.waveshare.com/w/upload/1/1e/Ads1115.pdf]

 

TB6612FNG Driver IC for Dual DC motor

[링크 : https://www.waveshare.com/w/upload/6/62/TB6612FNG_datasheet_en.pdf]

 

INA219 (0x41?)

PCA9685 * 2 PCA1 - 3V3(0x60) 모터 구동 / PCA2 - GND(0x40) 서보 구동

SSD1306 * 1 -> 0x3C 추정

ADS1115 * 1 (AIN0 - 12VCC 확인용? 0b1001000 = 0x48)

[링크 : https://www.waveshare.com/w/upload/4/4a/JetRacer_Schematic.pdf]

'embeded > jetson' 카테고리의 다른 글

jetracer 바퀴 찾기  (0) 2023.02.14
젯슨 레이서 조립 2  (0) 2023.01.21
젯슨 레이서 조립 1  (0) 2023.01.20
deepstream NCHW, NHWC  (0) 2022.04.22
FLIR ETS320 / v4l  (0) 2022.04.21
Posted by 구차니