embeded/raspberry pi2015. 5. 12. 13:03


기본 통합된건 없는것 같긴한데..

라즈베리 파이용 GPIO 컨트롤 라이브러리 라고 하면 되려나?

[링크 : http://wiringpi.com/download-and-install/]


pi4j는 wireing PI의 자바버전

[링크 : http://pi4j.com/]



void pinMode (int pin, int mode) ;

void pullUpDnControl (int pin, int pud) ;

void digitalWrite (int pin, int value) ;

void pwmWrite (int pin, int value) ;

int digitalRead (int pin) ;

analogRead (int pin) ;

analogWrite (int pin, int value) ;

[링크 : http://wiringpi.com/reference/core-functions/]

[링크 : http://wiringpi.com/reference/raspberry-pi-specifics/]

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

openelec 5.0.8 lirc 활성화 확인  (0) 2015.05.12
openELEC 5.0.8  (0) 2015.05.12
UHS 지원여부?  (0) 2015.05.11
cortex-a7 / NEON 그리고.. 멀티프로세서  (0) 2015.05.07
라즈베리 파이 2- 라즈비안 lirc  (0) 2015.05.05
Posted by 구차니
embeded/raspberry pi2015. 5. 11. 14:41


라즈베리에서는 UHS SD 스펙을 지원하지 않는건가?


[링크 : http://www.hardkernel.com/main/products/prdt_info.php]


일단.. SD 위원회 자료로는 UHS SD 카드라고 해도 장비에서 지원하지 않으면

Class 10 으로 하향 접속이 되는 것으로 보인다.

[링크 : https://www.sdcard.org/developers/overview/speed_class/]

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

openELEC 5.0.8  (0) 2015.05.12
wiring Pi  (0) 2015.05.12
cortex-a7 / NEON 그리고.. 멀티프로세서  (0) 2015.05.07
라즈베리 파이 2- 라즈비안 lirc  (0) 2015.05.05
BCM2708/BCM2835 ???  (0) 2015.04.30
Posted by 구차니
Programming/C Win32 MFC2015. 5. 11. 12:49

이번에 코드 재정비 중인데...

어우.. 정말 교차참조 하지 않도록 짜아야

수많은 ifdef의 향연에 꼬이는 바람에 뇌가 꽈직꽈직



아무튼 헤더도 계층을 만들어서 하던가 해야지

상호 교차참조 하는 상황에서는 예측 불가능한 상황이 발생할 수 있다.


헤더 중복 방지

[링크 : http://chanywa.com/8]


헤더 hierarchy

[링크 : http://ekessy.tistory.com/33]

'Programming > C Win32 MFC' 카테고리의 다른 글

setjmp, longjmp  (0) 2015.05.19
inline 함수..  (0) 2015.05.12
#ifdef 와 #ifdef ()의 차이  (0) 2015.04.13
winUSB / win32 physical drive  (0) 2014.12.23
printf POSIX 확장 %1$d  (0) 2014.12.09
Posted by 구차니
하드웨어/Storage2015. 5. 8. 14:42

기본 설정은 다운로드 완료시 업로드 중지

하드 수명이 딿은 걱정은 안해도 되려나?

역으로. 시드 유지하려면 반드시 이 부분은 설정해서 풀어주어야 할 것으로 보인다.




+

기가비트 버텨줄수 있는 녀석인 만큼

100Mbps 급의 토렌토 다운로드는 보장한다.

'하드웨어 > Storage' 카테고리의 다른 글

win7 + synology NAS iSCSI 연동  (0) 2015.05.14
synology DSM 5.2-5565 업데이트  (0) 2015.05.12
synology DS213j 보안 어드바이저  (0) 2015.05.08
ds213j file station 스트리밍  (0) 2015.05.06
synology DS213J가 더 빠른가..?  (0) 2015.05.03
Posted by 구차니
하드웨어/Storage2015. 5. 8. 13:27

오홍 별걸 다 제공하네


일단 기본적인 보안수준을 위해서 돌려보는게 좋긴한데

집에서만 쓰는거라 조금 과도하지 않아 싶을 정도?

계정이야 아내도 써야 하니 편하게 해둔 탓이고..

네트워크는 집에서 혼자 접속하니 22번으로 SSH를 놔둬서 -_-a



아무튼 보안이라는건 신경쓸게 많아서 문제인데

기본적인 가이드 라인을 제시해주는 것 만큼은 칭찬할만한 부분일듯.

Posted by 구차니
embeded/raspberry pi2015. 5. 7. 10:20

그림 상으로는 프로세서 코어 별로 NEON과 VFP가 독립적으로 내장되어 있는데..

4코어니까

openMP로 4 프로세스를 프로세서 별로 돌리면서 각각 NEON을 돌리는게 가능하려나?




[링크 : http://www.arm.com/products/processors/cortex-a/cortex-a7.php]

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

wiring Pi  (0) 2015.05.12
UHS 지원여부?  (0) 2015.05.11
라즈베리 파이 2- 라즈비안 lirc  (0) 2015.05.05
BCM2708/BCM2835 ???  (0) 2015.04.30
라즈베리 파이 SoC 관련  (0) 2015.04.29
Posted by 구차니
Programming/neon2015. 5. 6. 22:01

arm-none-linux-gnueabi-gcc -mfpu=neon -ftree-vectorize -c vectorized.c

플래그로 tree-vectorize를 주고

소스에서 __restrict 하면 gcc에서 알아서 neon 코드를 생성해 낸다고 한다.

openmp 를 조금 해봐서 그런가..openmp의 스멜이야 ㅋㅋㅋ


$ vi auto.c

void add_ints(int * __restrict pa, int * __restrict pb, unsigned int n, int x)

{

    unsigned int i;


    for(i = 0; i < (n & ~3); i++)

        pa[i] = pb[i] + x;

}


$ arm-linux-gnueabihf-gcc -mfpu=neon -ftree-vectorize -c auto.c

$ arm-linux-gnueabihf-objdump -D auto.o


auto.o:     file format elf32-littlearm


Disassembly of section .text:

00000000 <add_ints>:
   0:   e52db004        push    {fp}            ; (str fp, [sp, #-4]!)
   4:   e28db000        add     fp, sp, #0
   8:   e24dd01c        sub     sp, sp, #28
   c:   e50b0010        str     r0, [fp, #-16]
  10:   e50b1014        str     r1, [fp, #-20]
  14:   e50b2018        str     r2, [fp, #-24]
  18:   e50b301c        str     r3, [fp, #-28]
  1c:   e3a03000        mov     r3, #0
  20:   e50b3008        str     r3, [fp, #-8]
  24:   ea00000e        b       64 <add_ints+0x64>
  28:   e51b3008        ldr     r3, [fp, #-8]
  2c:   e1a03103        lsl     r3, r3, #2
  30:   e51b2010        ldr     r2, [fp, #-16]
  34:   e0823003        add     r3, r2, r3
  38:   e51b2008        ldr     r2, [fp, #-8]
  3c:   e1a02102        lsl     r2, r2, #2
  40:   e51b1014        ldr     r1, [fp, #-20]
  44:   e0812002        add     r2, r1, r2
  48:   e5921000        ldr     r1, [r2]
  4c:   e51b201c        ldr     r2, [fp, #-28]
  50:   e0812002        add     r2, r1, r2
  54:   e5832000        str     r2, [r3]
  58:   e51b3008        ldr     r3, [fp, #-8]
  5c:   e2833001        add     r3, r3, #1
  60:   e50b3008        str     r3, [fp, #-8]
  64:   e51b3018        ldr     r3, [fp, #-24]
  68:   e3c32003        bic     r2, r3, #3
  6c:   e51b3008        ldr     r3, [fp, #-8]
  70:   e1520003        cmp     r2, r3
  74:   8affffeb        bhi     28 <add_ints+0x28>
  78:   e24bd000        sub     sp, fp, #0
  7c:   e49db004        pop     {fp}            ; (ldr fp, [sp], #4)
  80:   e12fff1e        bx      lr

Disassembly of section .comment:

00000000 <.comment>:
   0:   43434700        movtmi  r4, #14080      ; 0x3700
   4:   6328203a        teqvs   r8, #58 ; 0x3a
   8:   73736f72        cmnvc   r3, #456        ; 0x1c8
   c:   6c6f6f74        stclvs  15, cr6, [pc], #-464    ; fffffe44 <add_ints+0xfffffe44>
  10:   20474e2d        subcs   r4, r7, sp, lsr #28
  14:   616e696c        cmnvs   lr, ip, ror #18
  18:   312d6f72        teqcc   sp, r2, ror pc
  1c:   2e33312e        rsfcssp f3, f3, #0.5
  20:   2e342d31        mrccs   13, 1, r2, cr4, cr1, {1}
  24:   30322d38        eorscc  r2, r2, r8, lsr sp
  28:   302e3431        eorcc   r3, lr, r1, lsr r4
  2c:   202d2031        eorcs   r2, sp, r1, lsr r0
  30:   616e694c        cmnvs   lr, ip, asr #18
  34:   47206f72                        ; <UNDEFINED> instruction: 0x47206f72
  38:   32204343        eorcc   r4, r0, #201326593      ; 0xc000001
  3c:   2e333130        mrccs   1, 1, r3, cr3, cr0, {1}
  40:   20293131        eorcs   r3, r9, r1, lsr r1
  44:   2e382e34        mrccs   14, 1, r2, cr8, cr4, {1}
  48:   30322033        eorscc  r2, r2, r3, lsr r0
  4c:   31303431        teqcc   r0, r1, lsr r4
  50:   28203630        stmdacs r0!, {r4, r5, r9, sl, ip, sp}
  54:   72657270        rsbvc   r7, r5, #112, 4
  58:   61656c65        cmnvs   r5, r5, ror #24
  5c:   00296573        eoreq   r6, r9, r3, ror r5

Disassembly of section .ARM.attributes:

00000000 <.ARM.attributes>:
   0:   00003241        andeq   r3, r0, r1, asr #4
   4:   61656100        cmnvs   r5, r0, lsl #2
   8:   01006962        tsteq   r0, r2, ror #18
   c:   00000028        andeq   r0, r0, r8, lsr #32
  10:   06003605        streq   r3, [r0], -r5, lsl #12
  14:   09010806        stmdbeq r1, {r1, r2, fp}
  18:   0c030a01        stceq   10, cr0, [r3], {1}
  1c:   14041201        strne   r1, [r4], #-513 ; 0x201
  20:   17011501        strne   r1, [r1, -r1, lsl #10]
  24:   19011803        stmdbne r1, {r0, r1, fp, ip}
  28:   1b021a01        blne    86834 <add_ints+0x86834>
  2c:   1e011c03        cdpne   12, 0, cr1, cr1, cr3, {0}
  30:   Address 0x00000030 is out of bounds.


[링크 : http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dht0002a/ch01s04s03.html] 


엥? vadd 라던가 이런류의 코드는 안보이는데 -ㅁ-?

라즈베리 파이용 컴파일러가 문제인가?


음.. 해도 안되는데 -ㅁ-? auto vertorize는 안되는건가? ㅠㅠ

-mfpu=name

This specifies what floating-point hardware (or hardware emulation) is available on the target. Permissible names are: ‘vfp’, ‘vfpv3’, ‘vfpv3-fp16’, ‘vfpv3-d16’, ‘vfpv3-d16-fp16’, ‘vfpv3xd’, ‘vfpv3xd-fp16’, ‘neon’, ‘neon-fp16’, ‘vfpv4’, ‘vfpv4-d16’, ‘fpv4-sp-d16’, ‘neon-vfpv4’, ‘fpv5-d16’, ‘fpv5-sp-d16’, ‘fp-armv8’, ‘neon-fp-armv8’, and ‘crypto-neon-fp-armv8’.

If -msoft-float is specified this specifies the format of floating-point values.


If the selected floating-point hardware includes the NEON extension (e.g. -mfpu=‘neon’), note that floating-point operations are not generated by GCC's auto-vectorization pass unless -funsafe-math-optimizations is also specified. This is because NEON hardware does not fully implement the IEEE 754 standard for floating-point arithmetic (in particular denormal values are treated as zero), so the use of NEON instructions may lead to a loss of precision. 

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

    [링크 : https://www.raspberrypi.org/forums/viewtopic.php?f=33&t=98354] 



+

2016.03.14

-ftree-vectorizer-verbose=1

[링크 : http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dht0002a/ch01s04s03.html]


Using the Vectorizer


Vectorization is enabled by the flag -ftree-vectorize and by default at -O3. To allow vectorization on powerpc* platforms also use -maltivec. On i?86 and x86_64 platforms use -msse/-msse2. To enable vectorization of floating point reductions use -ffast-math or -fassociative-math.

-ftree-vectorizer-verbose=2

[링크 : https://gcc.gnu.org/projects/tree-ssa/vectorization.html]

'Programming > neon' 카테고리의 다른 글

node.js 멀티코어 사용하기  (0) 2018.09.10
kernel mode neon support?  (0) 2015.05.06
NEON instruction  (0) 2015.05.05
neon 예제 실행 + 커널 교체  (0) 2015.05.04
arm neon 예제 컴파일  (0) 2015.05.03
Posted by 구차니
하드웨어/Storage2015. 5. 6. 15:25

크롬에서는 먼가 문제가 있는지 자꾸 VLC를 설치하라고 나오는데..

일단 윈도우에서는 설치시 VLC에 자동으로 IE 플러그인 설치가 되어 있어서 그런지 잘 나온다.


ds213j는 그룹 2로 MP4/MOV/MKV 는 그대로 스트리밍

나머지는 스트리밍은 하나 코덱 필요.. 이려나?


그룹 1그룹 2
DS214play/DS415play비-DS214play/DS415play
Win PC 및 Mac 브라우저* MP4, MOV 및 M4V: 원래 비디오 파일 스트리밍
* MP4(멀티 오디오 트랙) 또는 MKV: 리먹싱 비디오1
* 최고 1080p로 비디오 트랜스코딩2
* 지원되지 않는 형식에는 타사 플러그인 사용(Win PC만 해당)
* 최고 720p로 비디오 트랜스코딩2
* 지원되지 않는 형식에는 타사 플러그인 사용(Win PC만 해당)
* 지원되지 않는 형식에는 타사 플러그인 필요(Win PC만 해당)

[링크 : https://www.synology.com/ko-kr/knowledgebase/faq/577]

Posted by 구차니

SAD/NCC는 두개의 다른 사진에서 깊이를 계산해 내는 알고리즘이다.


[링크 : http://en.wikipedia.org/wiki/Sum_of_absolute_differences]

[링크 : http://vbflash.net/66]


NCC - Normalized Cross

ZNCC - Zero mean Normalized Cross-Correlation function (ZNCC)

SAD - Sum of absolute differences


[링크 : http://www.sciencedirect.com/science/article/pii/S0167865505000905]

[링크 : http://www.ijeit.com/vol%202/Issue%208/IJEIT1412201302_45.pdf]

'이론 관련 > 사진 광학 관련' 카테고리의 다른 글

샤프니스 계산  (0) 2015.05.28
rolling shutter effect / jello effect ..  (0) 2015.05.22
TOF - Time of Flight  (0) 2015.04.30
촛점거리로 부터 거리 계산하기  (0) 2015.04.27
rolling shutter  (0) 2014.08.13
Posted by 구차니
Programming/neon2015. 5. 6. 09:08

커널에서 설정하는 neon은..

    *** At least one emulation must be selected ***

[*] VFP-format floating point maths                

[ ]   Advanced SIMD (NEON) Extension support     

커널모드 neon 지원이려나?


도움말에는 간단하게만 써있는데

The Linux kernel configuration item CONFIG_NEON:


prompt: Advanced SIMD (NEON) Extension support

type: bool

depends on: CONFIG_VFPv3 && CONFIG_CPU_V7

defined in arch/arm/Kconfig

found in Linux kernels: 2.6.25–2.6.39, 3.0–3.19, 4.0, 4.1-rc+HEAD

Help text


Say Y to include support code for NEON, the ARMv7 Advanced SIMD Extension.

[링크 : http://cateee.net/lkddb/web-lkddb/NEON.html] 


비글본 보드 쪽 글이 검색되서 보니...

커널모드 NEON 명령어 지원...?

Re: [beagleboard] Re: How to enable NEON instruction Support in the kernel


In the linux omap kernel [assuming you have already done "make ARCH=arm omap3_beagle_defconfig]

make ARCH=arm menuconfig


Under the "Floating point emulation" Select "Advanced SIMD (NEON) Extension support".

Save the configuration and exit.


Check in the .config file whether you have "CONFIG_NEON=y"


- Jesslyn 

[링크 : https://groups.google.com/forum/#!topic/beagleboard/xF1gwRrUvQY] 



Changes since v1:

- changed the order of the patches, so kernel_neon_begin() does not appear before the required fixes are in place

- don't use might_sleep() to enforce that kernel_neon_begin() should not be called from interrupt context, as it also prevents it from being called with preemption disabled, which is perfectly acceptable

- prefer inc_preempt_count() over preempt_disable() so sleeping after calling kernel_neon_begin() gets flagged even with kernel preemption disabled in Kconfig

- made the RAID6 patch suitable for both arm and arm64


[링크 : https://lwn.net/Articles/556398/] 



[링크 : https://www.kernel.org/doc/Documentation/arm/kernel_mode_neon.txt]

'Programming > neon' 카테고리의 다른 글

node.js 멀티코어 사용하기  (0) 2018.09.10
neon auto vectoring  (0) 2015.05.06
NEON instruction  (0) 2015.05.05
neon 예제 실행 + 커널 교체  (0) 2015.05.04
arm neon 예제 컴파일  (0) 2015.05.03
Posted by 구차니