'embeded'에 해당되는 글 1387건

  1. 2021.01.13 vfp
  2. 2021.01.12 NEON 강제활성화?
  3. 2021.01.11 arm-none-eabi는 -pthread 미지원
  4. 2021.01.11 라즈베리에 GUI 환경 설치하기
  5. 2021.01.08 i.mx6quad용 gcc 옵션
  6. 2021.01.08 orange pi r1+
  7. 2020.12.24 rpi youtube
  8. 2020.12.15 mpicc on rpi
  9. 2020.12.10 softfp와 hardfp
  10. 2020.12.08 node-red UI bashboard
embeded/ARM2021. 1. 13. 13:48

vfp

뒤에 붙는 D32 D16 F16은 다시 자세히 보니

Double / Float 와 몇개의 레지스터를 가지나 숫자를 표현한 듯?

 

VFPv1
Obsolete
VFPv2
An optional extension to the ARM instruction set in the ARMv5TE, ARMv5TEJ and ARMv6 architectures. VFPv2 has 16 64bit FPU registers.
VFPv3 or VFPv3-D32
Implemented on most Cortex-A8 and A9 ARMv7 processors. It is backwards compatible with VFPv2, except that it cannot trap floating-point exceptions. VFPv3 has 32 64bit FPU registers as standard, adds VCVT instructions to convert between scalar, float and double, adds immediate mode to VMOV such that constants can be loaded into FPU registers.
VFPv3-D16
As above, but with only 16 64-bit FPU registers. Implemented on Cortex-R4 and R5 processors and the Tegra 2 (Cortex-A9).
VFPv3-F16
Uncommon; it supports IEEE754-2008 half-precision (16-bit) floating point as a storage format.
VFPv4 or VFPv4-D32
Implemented on Cortex-A12 and A15 ARMv7 processors, Cortex-A7 optionally has VFPv4-D32 in the case of an FPU with Neon.[110] VFPv4 has 32 64-bit FPU registers as standard, adds both half-precision support as a storage format and fused multiply-accumulate instructions to the features of VFPv3.
VFPv4-D16
As above, but it has only 16 64-bit FPU registers. Implemented on Cortex-A5 and A7 processors in the case of an FPU without Neon.[110]
VFPv5-D16-M
Implemented on Cortex-M7 when single and double-precision floating-point core option exists.

[링크 : https://en.wikipedia.org/wiki/ARM_architecture]

[링크 : https://wiki.debian.org/ArmHardFloatPort/VfpComparison]

 

+

 

[링크 : https://community.arm.com/developer/tools-software/tools/b/tools-software-ides-blog/posts/arm-cortex-a-processors-and-gcc-command-lines]

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

cortex-a9 하드웨어 Divider가 없어?!  (0) 2021.03.18
gcc 버전 차이?  (0) 2021.01.13
NEON 강제활성화?  (0) 2021.01.12
softfp와 hardfp  (0) 2020.12.10
ampere altra  (0) 2020.11.23
Posted by 구차니
embeded/ARM2021. 1. 12. 17:09

 

[리읔: https://developer.arm.com/documentation/dui0472/i/compiler-coding-practices/enabling-neon-and-fpu-for-bare-metal]

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

gcc 버전 차이?  (0) 2021.01.13
vfp  (0) 2021.01.13
softfp와 hardfp  (0) 2020.12.10
ampere altra  (0) 2020.11.23
arm cl  (0) 2020.10.29
Posted by 구차니
embeded2021. 1. 11. 16:07

uboot 용으로 받아둔거긴 하지만 pthread를 미지원 한다는건

리눅스 커널 상에서만 pthread를 지원하기 때문인가?

그래서 uboot 에서는 커널에서 도는게 아니기에 pthread를 지원할 수 없는 건가?

 

[링크 : https://nancom.tistory.com/177]

'embeded' 카테고리의 다른 글

i.mx6quad용 gcc 옵션  (0) 2021.01.08
orange pi r1+  (0) 2021.01.08
i.mx6 solo 비디오 성능 문제?  (0) 2020.10.19
간만에 부품 지름  (2) 2020.03.04
solidrun CuBox-i2w  (0) 2019.03.10
Posted by 구차니
embeded/raspberry pi2021. 1. 11. 15:27

예전에 쓴건진 모르겠지만.. 다시 씀 ㅋ

 

저용량 버전으로 설치하면

gdm이 없는데 lightdm 을 설치하고 리부팅 하면 GUI로 로그인하게 된다.

 

[링크 : https://blog.naver.com/hujinone22/220292580078]

 

+

2021.01.11

먼가 설정문제인지 모르겠는데 로그인이 안된다 ㅠㅠ

'embeded > raspberry pi' 카테고리의 다른 글

rpi pico  (0) 2021.01.31
bazel on rpi  (0) 2021.01.18
rpi youtube  (0) 2020.12.24
mpicc on rpi  (0) 2020.12.15
node-red UI bashboard  (0) 2020.12.08
Posted by 구차니
embeded2021. 1. 8. 17:59

아래의 옵션을 추천해서 적용해 보았는데

-mthumb -O3 -march=armv7-a -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=neon -mvectorize-with-neon-quad -mfloat-abi=softfp

[링크 : https://stackoverflow.com/questions/14962447/gcc-options-for-a-freescale-imx6q-arm-processor]

[링크 : https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html]

 

에러가 나서 mfloat-abi=softfp 에서 hard로 변경

In file included from /usr/include/features.h:448,
                 from /usr/include/arm-linux-gnueabihf/bits/libc-header-start.h:33,
                 from /usr/include/stdlib.h:25,
                 from include/darknet.h:12,
                 from ./src/activations.h:3,
                 from ./src/gemm.h:3,
                 from ./src/gemm.c:1:
/usr/include/arm-linux-gnueabihf/gnu/stubs.h:7:11: fatal error: gnu/stubs-soft.h: No such file or directory
 # include <gnu/stubs-soft.h>
           ^~~~~~~~~~~~~~~~~~
compilation terminated.

[링크 : https://stackoverflow.com/questions/49139125/fatal-error-gnu-stubs-soft-h-no-such-file-or-directory]

 

아무튼 빌드는 되지만 아래와 같은 경고가 뜬다. march와 mcpu가 충돌난다라.. 어느걸 살려야 할까?

cc1: warning: switch -mcpu=cortex-a9 conflicts with -march=armv7-a switch

 

 

+

2021.01.12

[링크 : https://developer.arm.com/documentation/dui0472/i/using-the-neon-vectorizing-compiler/generating-neon-instructions-from-c-or-c---code]

 

'embeded' 카테고리의 다른 글

arm-none-eabi는 -pthread 미지원  (0) 2021.01.11
orange pi r1+  (0) 2021.01.08
i.mx6 solo 비디오 성능 문제?  (0) 2020.10.19
간만에 부품 지름  (2) 2020.03.04
solidrun CuBox-i2w  (0) 2019.03.10
Posted by 구차니
embeded2021. 1. 8. 11:23

시리얼이 안된다고 해서 비싼 장난감으로 찍어보니

655ns .. 헐?

역으로 계산해보면 대충 1.6Mbps 나오는 것 같아서 찾아보는데

RK3328은 기본값이 1.5Mbps(1500000n8)로 셋팅된다고 하는데 동일 보드도 아니고

해당 보드 홈페이지 쥐잡듯이 뒤져도 기본값 이야기가 안나온다 -_-

 

아무튼 3.3V TTL은 맞고 115kbps가 아니라 1.5Mbps 라는게 문제인데

이거 되는 TTL-USB가 얼마나 있으려나?

 

 

[링크 : http://www.orangepi.org/Orange%20Pi%20R1%20Plus/]

[링크 : http://wiki.t-firefly.com/ROC-RK3328-CC/debug.html]

[링크 : https://forum.radxa.com/t/serial-debug-and-1500000-bps-issue/1390/7]

[링크 : https://forum.pine64.org/showthread.php?tid=7379]

'embeded' 카테고리의 다른 글

arm-none-eabi는 -pthread 미지원  (0) 2021.01.11
i.mx6quad용 gcc 옵션  (0) 2021.01.08
i.mx6 solo 비디오 성능 문제?  (0) 2020.10.19
간만에 부품 지름  (2) 2020.03.04
solidrun CuBox-i2w  (0) 2019.03.10
Posted by 구차니
embeded/raspberry pi2020. 12. 24. 09:52

 

[링크 : https://www.raspberrypi.org/forums/viewtopic.php?t=251688]

 

[링크 : https://github.com/FreeTubeApp/FreeTube]

[링크 : https://www.smtube.org/]

[링크 : https://flavio.tordini.org/minitube]

'embeded > raspberry pi' 카테고리의 다른 글

bazel on rpi  (0) 2021.01.18
라즈베리에 GUI 환경 설치하기  (0) 2021.01.11
mpicc on rpi  (0) 2020.12.15
node-red UI bashboard  (0) 2020.12.08
rpi node-red  (0) 2020.12.07
Posted by 구차니
embeded/raspberry pi2020. 12. 15. 16:40

mpicc를 써보겠다는 일념으로 라즈베리에서 한번 검색해보니..

mpi-default-dev 라는 패키지가 나온다. centos에는 어떤 패키지로 존재하려나..

$ sudo apt-cache search mpicc
mpi-default-dev - Standard MPI development files (metapackage)
$ whereis mpicc
mpicc: /usr/bin/mpicc /usr/bin/mpicc.openmpi /usr/share/man/man1/mpicc.1.gz

$ ls -al /usr/bin/mpicc
lrwxrwxrwx 1 root root 21 Dec 15 07:32 /usr/bin/mpicc -> /etc/alternatives/mpi

$ ls -al /etc/alternatives/mpi
lrwxrwxrwx 1 root root 22 Dec 15 07:32 /etc/alternatives/mpi -> /usr/bin/mpicc.openmpi

$ ls -al /usr/bin/mpicc.openmpi
lrwxrwxrwx 1 root root 12 May  6  2019 /usr/bin/mpicc.openmpi -> opal_wrapper

$ ls -al /usr/bin/opal_wrapper
-rwxr-xr-x 1 root root 18072 May  6  2019 /usr/bin/opal_wrapper

엄청나게 여기저기(?) 연결되서 결국에는 opal_wrapper라는 걸로 연결된다.

단순 래퍼인지 결국에는 gcc로 연결되서 인자없이 실행하면 에러가 발생한다 

$ mpicc
gcc: fatal error: no input files
compilation terminated.

 

어디서 걸핏 본걸로는 showme 라는 옵션으로 인자를 준다고 한 것 같은데...

gcc로 시작하네?

$ mpicc -showme
gcc -I/usr/lib/arm-linux-gnueabihf/openmpi/include/openmpi -I/usr/lib/arm-linux-gnueabihf/openmpi/include -pthread -L/usr/lib/arm-linux-gnueabihf/openmpi/lib -lmpi

'embeded > raspberry pi' 카테고리의 다른 글

라즈베리에 GUI 환경 설치하기  (0) 2021.01.11
rpi youtube  (0) 2020.12.24
node-red UI bashboard  (0) 2020.12.08
rpi node-red  (0) 2020.12.07
node-red rpi  (0) 2020.11.29
Posted by 구차니
embeded/ARM2020. 12. 10. 11:41

softfp 로 빌드된 라이브러리를 hardfp 에서 돌릴수 있냐? 라는 것으로 검색중..

아무튼 ld-linux-armhf.so.3 가 있는 시스템에서 ld-linux.so.3를 요청하는 것을 보면

hf(hard float)가 아니라 soft float 시스템용 라이브러리로 빌드 된 것으로 보이는데

 

ld-linux.so.3를 검색한 결과로는 ln을 통해 ld-linux-armhf.so.3를 ld-linux.so.3로 심볼릭 링크하라는 말들이 나온다.

[링크 : https://forum.lazarus.freepascal.org/index.php?topic=15108.0]

[링크 : https://unix.stackexchange.com/questions/553743/correct-way-to-add-lib-ld-linux-so-3-in-debian]

 

아래는 ld-linux-armhf.so가 된 이유?

[링크 : https://lists.linaro.org/pipermail/cross-distro/2012-April/000261.html]

 

 

빌드 시에는 아래와 같이 에러가 난다고 하는데

ln -s 로 해주면 일단은 우회는 되지만

warning: ld-linux.so.3, needed by libidontknow.so, not found (try using -rpath or -rpath-link)

 

정작 실행했을 경우 해결이 되지 않고 특정 라이브러리를 불러오는데 에러가 발생을 했다고만 간략하게 나온다.

./sample: error while loading shared libraries: libidontknow.so: internal error

 

무슨 문제가 있나 곰곰히 고민을 해보니 softfp와 hardfp의 차이인것 같아서 검색해보니

ABI가 달라서 두개를 혼용할 수 없는게 문제인 것으로 보이는데

그렇게 따지면.. ld-linux.so.3를 찾아서 넣는게 오히려 빠른 해결 책이 아닐까 생각이 된다.

좀 더 근원적으로는, 사용하려는 libidontknow.so를 softfp가 아닌 hardfp로 빌드하는게 가장 좋긴 하겠지만 말이다.

 

+

호출 규약이 다르다..

soft : floating-point 연산을 위한 라이브러리 콜을 포함하도록 gcc 가 컴파일 결과를 만들어낸다.
softfp : hardware floating-point instruction 을 생성하도록 하지만, 여전히 soft-float 호출 규약(calling convention)을 사용한다.
hard : floating-point instructions 을 생성하고 FPU 특화된 호출 규약(calling convention)을 사용한다.

[링크 : https://pinocc.tistory.com/127]

 

ABI 컨벤션이 다르다..

Applications, which are built under “hardfp” option, cannot work under Linux, that was compiled under “softfp” – because different ABI conventions; function parameters transfer are different : the soft float conventions assume passing floats through general purpose (integer) registers, but “hardfp” uses the floating point register.

[링크 : https://community.nxp.com/t5/i-MX-Processors/imx6q-hard-float-or-soft-float/m-p/209848]

 

armhf는 이름대로 hard-float용이고 없는 녀석은 soft-float 용.

arm
hard-float ABI, BE32: /lib/ld-linux-armhf.so.3
hard-float ABI, BE8: /lib/ld-linux-armhf.so.3
hard-float ABI, LE: /lib/ld-linux-armhf.so.3
soft-float ABI, BE32: /lib/ld-linux.so.3
soft-float ABI, BE8: /lib/ld-linux.so.3
soft-float ABI, LE: /lib/ld-linux.so.3
(The ARM soft-float ABI can be used with both hard and soft-float code. ARM supports two variants of big-endian operation, (on newer processors) BE8 and (on older processors) BE32, which are the same at .o level but incompatible for linked executables and shared libraries.)

[링크 : https://sourceware.org/glibc/wiki/ABIList]

 

+

[링크 : https://talkingaboutme.tistory.com/entry/Linux-floating-point-관련-삽질중]

 

+

아래와 같은 항목이 보이는 걸 봐서는 mfloat-abi는 softfp 방식으로 abi를 선언할 뿐

실제 연산은 mfpu로 선언된 neon을 통해서 구현이 되도록 설정이 가능한 것으로 보인다.

export CC="arm-linux-gnueabi-gcc  -march=armv7-a     -mthumb-interwork -mfloat-abi=softfp -mfpu=neon  --sysroot=/home/eric/src/imx6/opt/ESX/imx6/sysroots/armv7a-vfp-neon-linux-gnueabi"

[링크 : https://gist.github.com/ericbutters/6049429b834edfaa0d2d]

 

 

그러니까 soft는 순수하게 software float point 계산

hard는  hardware float point 계산

softfp는 hardware float point 를 사용하지만 함수 호출 방식은 soft 방식을 쓴다고 보면 될 듯?

-mfloat-abi=name
Specifies which floating-point ABI to use. Permissible values are: ‘soft’, ‘softfp’ and ‘hard’.

Specifying ‘soft’ causes GCC to generate output containing library calls for floating-point operations. ‘softfp’ allows the generation of code using hardware floating-point instructions, but still uses the soft-float calling conventions. ‘hard’ allows generation of floating-point instructions and uses FPU-specific calling conventions.

The default depends on the specific target configuration. Note that the hard-float and soft-float ABIs are not link-compatible; you must compile your entire program with the same ABI, and link with a compatible set of libraries.

[링크 : https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html]

 

 

+

예전에 한참 고생하게 만들었던 gcc multilib이 이럴때 언급될줄이야..

아무튼 컴파일러가 multilib을 지원하면 softfp를 쓰라는데 반대로 multilib을 지원하지 않으면 soft, hard만 지원한다는 건가?

If the compiler has multilib enabled (you can tell with -print-multi-lib) then you can use -mfloat-abi=softfp, but if not then that option won't help you much: gcc will happily generate softfp code, but then there'll be no compatible libgcc to link against.

[링크 : https://stackoverflow.com/questions/9753749/]

  [링크 : https://stackoverflow.com/questions/48224372/]

 

 

+

 

[링크 : https://www.gurucoding.com/rpi_cross_compiler/2012/04_diff_hardfp_softfp/]

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

vfp  (0) 2021.01.13
NEON 강제활성화?  (0) 2021.01.12
ampere altra  (0) 2020.11.23
arm cl  (0) 2020.10.29
arm64 server sysbench  (0) 2020.09.23
Posted by 구차니
embeded/raspberry pi2020. 12. 8. 20:13

우측의 dashboard 에서 layout

+tab 을 눌러 tab을 추가하고

tab에 +group을 눌러 gourp을 추가한다음

 

버튼 노드의 group을 지정하면 빨간색 경거도 사라지고 정상적으로 실행된다.

 

ui control 노드는 별도로 설치한 녀석인데

text와 button node가 직접 연결되지 않아도 되니 신기하네

 

node-red의 하위 경로로 ui를 입력하면 접속된다.

http://rpi:1880/ui

 

[링크 : http://naver.varofla.com/221127489634]

'embeded > raspberry pi' 카테고리의 다른 글

rpi youtube  (0) 2020.12.24
mpicc on rpi  (0) 2020.12.15
rpi node-red  (0) 2020.12.07
node-red rpi  (0) 2020.11.29
간만에 라즈베리 + 포맷?  (0) 2020.11.29
Posted by 구차니