'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 |
| 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 |
uboot 용으로 받아둔거긴 하지만 pthread를 미지원 한다는건
리눅스 커널 상에서만 pthread를 지원하기 때문인가?
그래서 uboot 에서는 커널에서 도는게 아니기에 pthread를 지원할 수 없는 건가?
| 중고 부품 지름 (0) | 2025.01.06 |
|---|---|
| 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 |
예전에 쓴건진 모르겠지만.. 다시 씀 ㅋ
저용량 버전으로 설치하면
gdm이 없는데 lightdm 을 설치하고 리부팅 하면 GUI로 로그인하게 된다.
[링크 : https://blog.naver.com/hujinone22/220292580078]
+
2021.01.11
먼가 설정문제인지 모르겠는데 로그인이 안된다 ㅠㅠ
| fbset geometry, timing 수치 (0) | 2021.02.19 |
|---|---|
| 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 |
아래의 옵션을 추천해서 적용해 보았는데
| -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
| 중고 부품 지름 (0) | 2025.01.06 |
|---|---|
| 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 |
시리얼이 안된다고 해서 비싼 장난감으로 찍어보니
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]
| 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 |
[링크 : https://www.raspberrypi.org/forums/viewtopic.php?t=251688]
[링크 : https://github.com/FreeTubeApp/FreeTube]
[링크 : https://www.smtube.org/]
| 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 |
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 |
| 라즈베리에 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 |
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/]
| 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 |
우측의 dashboard 에서 layout
+tab 을 눌러 tab을 추가하고
tab에 +group을 눌러 gourp을 추가한다음

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

ui control 노드는 별도로 설치한 녀석인데
text와 button node가 직접 연결되지 않아도 되니 신기하네

node-red의 하위 경로로 ui를 입력하면 접속된다.
http://rpi:1880/ui

| 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 |
localhost:1880/ui
[링크 : https://flows.nodered.org/node/node-red-dashboard]
[링크 : https://randomnerdtutorials.com/getting-started-with-node-red-dashboard/]
사용법
[링크 : https://ko.howtodogood.com/76628-Node-Red-Control-RaspberryPi-38]
[링크 : https://blog.naver.com/edblab/221495131985]
[링크 : https://blog.naver.com/edblab/221446658416]
음악 재생
[링크 : https://discourse.nodered.org/t/playing-a-mp3-flie/18030/2]
| mpicc on rpi (0) | 2020.12.15 |
|---|---|
| node-red UI bashboard (0) | 2020.12.08 |
| node-red rpi (0) | 2020.11.29 |
| 간만에 라즈베리 + 포맷? (0) | 2020.11.29 |
| 라즈베리 파이 3B 환상이 너무 컸나? (0) | 2020.10.25 |