'잡동사니'에 해당되는 글 13032건
- 2023.02.28 외근이.잦아..
- 2023.02.27 cmsis (Common Microcontroller Software Interface Standard)
- 2023.02.27 cordic (coordinate rotation digital computer)
- 2023.02.27 개발자인데 자리에 좀 앉아있자 ㅜㅜ
- 2023.02.26 노랫만에 한강 나들이
- 2023.02.25 버섯탕수욕 마이쪙!
- 2023.02.24 윈도우 시리얼 날리기
- 2023.02.24 i.mx8m plus arm trust zone
- 2023.02.23 i.mx8m plus cortex-m7 part.2
- 2023.02.23 i.mx8m plus cortex-m7
이름대로 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]
'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 |
참.. 구시대적인 약어라고 해야하나
coordinate rotation digital computer
좌표계 회전 디지털 컴퓨터 라고 번역을 해야 할 것 같긴한데
cordic 알고리즘은 수치 연산에 대한 대부분을 최소한의 하드웨어 로직을 통해 구현 가능하도록 해준다고 한다.
덧셈 뺄셈 나눗셈 sin() cos() 등등등.. 고정 소수점 연산도 가능하다는 듯
'이론 관련 > 컴퓨터 관련' 카테고리의 다른 글
db 식별/비식별 관계 (0) | 2024.02.15 |
---|---|
vRAN (0) | 2023.08.23 |
tlv (0) | 2022.10.19 |
DR - Disaster Recovery Plan (0) | 2022.10.17 |
SLP - Superword Level Parallelism (0) | 2022.06.02 |
햇쌀이 따땃
바람은 춥춥
'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글
벚꽃구경 (0) | 2023.04.02 |
---|---|
심장 사상충약 투약! (0) | 2023.03.17 |
버섯탕수욕 마이쪙! (0) | 2023.02.25 |
돈 쓰는 날 2 (2) | 2023.02.12 |
돈 쓰는날 (2) | 2023.02.11 |
아부지 생신경
버섯집에서 버섯전골을 먹는데 개인적으로는 무한 리필 코너의
버섯 탕수육이 최고인듯
'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글
심장 사상충약 투약! (0) | 2023.03.17 |
---|---|
노랫만에 한강 나들이 (0) | 2023.02.26 |
돈 쓰는 날 2 (2) | 2023.02.12 |
돈 쓰는날 (2) | 2023.02.11 |
장보기 (0) | 2023.02.05 |
관리자 권한 cmd를 열고
아래 2개의 명령어를 입력하면 레지스트리 + 제품 키 제거하고
3번째 명령어는 제품 키를 확인한다.
C:\> slmgr /cpky C:\> slmgr /upk C:\> slmgr /xpr |
'Microsoft > Windows' 카테고리의 다른 글
win11 notepad 별루야! (0) | 2023.04.10 |
---|---|
7세대는 윈도우 11이 안되는 군! (2) | 2023.03.04 |
WSL2에 USB 장치 연결하기 (0) | 2023.01.09 |
WSL 로 SSH 접속 .. 2 (0) | 2023.01.09 |
hyper-v on win home (0) | 2023.01.08 |
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 |
아래의 경로에서 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 |
아래 링크는 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 |
실행이 되는거 같긴 한데...
디버그 시리얼 쪽으로도 무언가 출력되는게 안보이는데 머가 문제이려나..
그리고 시스템 자체가 멈춘다.. 뭐야.. (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 |