하드웨어/Storage2015. 8. 6. 17:15

microSD는 아래 사진 기준 31/32/321/3 번이라고 쓰인 녀석으로 인해

카드가 빠져 나오지 않도록 되어있는데.. 이녀석이 부러지거나 하면 들어가기는 하지만

손으로 당기면 빠져 나오는 듯...




크윽 ㅠㅠ

라즈베리 파이 2B에 molex 껀데 이걸 구해서 땜해야 하나? ㅠㅠ



[링크 : http://www.google.com/patents/US7249975]

[링크 : http://www.korean.molex.com/.../microSD-104031/...]

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

synology port  (0) 2015.12.22
synology DS213j SVN server 설치  (0) 2015.10.19
xpenology  (0) 2015.06.30
DS213j 하이버네이트 정상작동중!  (0) 2015.06.25
Synology DS213j DSM5.2 업데이트!!!  (0) 2015.06.09
Posted by 구차니

imx 시리즈의 SDK에도 gstreamer가 들어있긴 했는데

그냥 넘겼거늘... 상당히 대단한 프레임워크로 보여서 급 관심..



먼저, 지연 없는 스트림 전송이라고 제목을 지었지만, 실제 딜레이는 720p 영상전송에서 0.3초 가량 되는 것 같습니다.

[링크 : http://www.rasplay.org/?p=5607]


[링크 : http://gstreamer.freedesktop.org/]

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

'프로그램 사용 > gstreamer' 카테고리의 다른 글

gstreamer element 생성 gst_element_factory_make()  (0) 2021.07.13
gst fpsdisplaysink  (0) 2021.02.18
gst videorate  (0) 2021.02.09
gstreamer tee  (0) 2021.02.08
gstreamer pipeline  (0) 2015.11.02
Posted by 구차니
embeded/raspberry pi2015. 8. 5. 15:27

지인 : 조만간 지르겠군..



[링크 : http://eleparts.co.kr/EPXDR9TM] 3.5" LCD 320*480

    [링크 : http://cafe.naver.com/pipc/11690]

[링크 : http://eleparts.co.kr/EPXD4BBD] 5M CIS OV5647

Posted by 구차니

창덕궁에 전화해서 상담해보니

인터파크나 옥션 구매시 구매자 계정의 신분증이 필요하다고 한다.

즉, 구매자의 신분이 중요(?)하지, 방문자의 신분은 중요하지 않다는 것






구차니 : 근데 아빠.. 국가유공자 50명 무료라는데요? (줄 서서 가면 안되시나이까? 예매 귀찬사옵니다.)

파파몬 : 걍 일반으로 예매해줘

구차니 : 뉘에 -_-


생각해보니 나 휴가인데..

아내랑 애 데리고 가볼까...


엌...옥션 미리 볼걸 ㅋㅋ



* 티켓 오픈일시 : 2015년 8월 5일(수) 오후 2시
* 매수제한 : 1인 최대 4매

* 옥션티켓에서는 인터넷 예매만 가능하며 전화예매는 불가합니다.
  외국인은 선착순 현장구매가 가능합니다. (선착순 200매 / 1인 최대 4매)

* Foreign visitors can make ticket purchases at the palace entrance.
  (Available per day for Foreigners: up tp 200 tickets / First come first served.)
  One person can buy no more than four tickets.


* 본 행사는 비지정석 / 선착순 입장 이며, 자율관람으로 진행됩니다.
* 예매수수료가 지원되어, 예매수수료 없이 예매가 가능합니다.
* 비회원은 웹 예매가 불가능하므로 예매시간 전 미리 회원가입을 부탁드립니다.

* 관람권 교환시 유의사항
- 구입하신 예매권은 경복궁매표소에서 교환하신 후 입장하실 수 있습니다.
- 예매하신 당사자의 신분증을 꼭 지참하셔야 합니다.(암표등의 부정한 티켓 유통 차단)
- 관람권은 당일에 한하여 유효하며, 당일 관람권 교환 및 취소는 불가합니다.

* 만 6세 이하 영유아는 인원제한없이 무료입장이 가능합니다.
- 국가유공자 및 장애인은 각 1일 50명(보조자 1명 포함) 총 100명 무료로 입장이 가능합니다.
* 국가유공자 상이등급 1급은 보조자 1명 무료로 입장이 가능합니다.
* 장애인은 중증 장애인(1~3급)일 경우 보조자 1명 무료로 입장이 가능합니다.

* 이 행사는 옥외행사이므로 우천시에도 진행되며, 우천시 야외활동을 위한 우산 등을 준비하시기 바랍니다.


[링크  : http://ticket.auction.co.kr/Home/Perf/PerfDetailInfo_2015_Bee_RoyalPalace_Summer.aspx]



야간 특별관람 시간은 오후 7시30분부터 오후 10시까지(입장마감 오후 9시까지)이며, 야간 특별관람 기간 중 국립고궁박물관도 경복궁 야간 특별관람기간에 맞춰 오후 10시까지 연장 운영한다. 다만 8월 17일, 24일은 박물관 정기휴관, 8월 18일, 25일은 경복궁 정기휴무로 야간에 개방하지 않는다. 야간 특별관람 예매를 못한 경우에는 상시 야간관람이 가능한 덕수궁(오후 8시까지 입장, 오후 9시까지 관람, 월요일 휴무)을 이용할 수 있다.


1일 최대 관람인원은 경복궁․창경궁 각각 2,500명이며, 관람권 구매는 가족단위 관람객이 보다 쉽게 이용할 수 있도록 1인당 2매 구매제한에서 1인당 4매 구매제한으로 완화된다.


일반인은 인터넷 예매만 가능하며, 만 65세 이상 어르신은 현장구매 또는 전화예, 외국인은 현장구매(전화예매 불가)로만 관람권을 구매할 수 있다.

인터넷 예매는 ‘옥션티켓’과 ‘인터파크 티켓’에서8월 5일(수) 오후 2시에 시작하며, 인터넷과 전화 예매자는 관람 당일 매표소에서 신분증을 제시하면 관람권을 배부 받아 입장할 수 있다.

* 인터넷 예매(PC 및 스마트폰 애플리케이션) : 옥션 티켓, 인터파크 티켓

* 전화 예매(만 65세 이상 어르신만 가능) : 인터파크(☎1544-1555, 월-토요일 09시-20시, 일요일․공휴일 09-18시)

* 현장구매: 경복궁 250매(어르신 50매, 외국인 200매), 창경궁 150매(어르신 50매, 외국인 100매)

* 외국인은 현장구매만 가능


관람료는 일반관람(경복궁 3,000원, 창경궁 1,000원)과 같다. 무료관람은 국가유공자․장애인 각 50명에 한해 적용되며, 사전예매 없이 현장에서 국가유공자증과 장애인증을 제시하면 선착순으로 입장할 수 있다. 

* 국가유공자 상이등급 1급, 장애인 1-3급: 본인과 보호자 1명 무료

* 국가유공자 상이등급 2급 이하, 장애인 4급 이하: 본인만 무료


[링크 : http://www.royalpalace.go.kr:8080/content/board/view.asp?seq=288&page=1&c1=&c2=] 



+

500번대 였는데 옥션 예매는 첨이라 모르고 어 이상한 창이네 닫아야지.. -_-

다시 누르니 5500명...

그래서 기다려서 했더니 팝업 설정.. 니미

15000명 기다려서 다시 했더니 결제에서 ActiveX로 매진되었습니다...

ㅆㅂ -_- 안해안해



'개소리 왈왈 > 직딩의 비애' 카테고리의 다른 글

8월 끝  (0) 2015.08.31
애본다 바빠 ㅠㅠ  (0) 2015.08.22
국민은행 + KB 손해보험 -_-  (3) 2015.08.04
8월 할일  (0) 2015.08.02
8월...  (0) 2015.08.01
Posted by 구차니
embeded/raspberry pi2015. 8. 5. 09:28

예전회사에서 ARM9 으로 테스트 하던 녀석들 얼마나 먹나 궁금해서 URL 찾아서 해보니. ㄷㄷㄷ

의외로 ARM11도 쓸만하구나...


WMAPro / WMA2 / AAC+

오디오인데.. ARM9에서는 끊어지던 녀석들이.. 눈물나게 잘 나온다. ㄷㄷㄷ



ARM11의 mpegaudio에 AAC+가 포함되서 그런건가?

2015/01/26 - [프로그램 사용/ffmpeg / ffserver] - ffmpeg arm 아키텍쳐별 최적화 코덱



pi@raspberrypi ~ $ mplayer mms://stream.polskieradio.pl/zagranica_wma10

ASF file format detected.

[asfheader] Audio stream found, -aid 1

Clip info:

 title: Zagranica

 author: Polskie Radio S.A.

==========================================================================

Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders

libavcodec version 53.35.0 (external)

Mismatching header version 53.32.2

AUDIO: 48000 Hz, 2 ch, floatle, 48.0 kbit/1.56% (ratio: 6000->384000)

Selected audio codec: [ffwmapro] afm: ffmpeg (WMA Pro audio (FFmpeg))

==========================================================================

AO: [pulse] Init failed: Connection refused

Failed to initialize audio driver 'pulse'

[AO_ALSA] Format floatle is not supported by hardware, trying default.

AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)

Video: no video

Starting playback...

A:674191.3 (187:16:31.3) of 0.0 (unknown)  7.1% 10%



pi@raspberrypi ~ $ mplayer mms://stream.polskieradio.pl/program3

ASF file format detected.

[asfheader] Audio stream found, -aid 1

==========================================================================

Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders

libavcodec version 53.35.0 (external)

Mismatching header version 53.32.2

AUDIO: 48000 Hz, 2 ch, s16le, 96.0 kbit/6.25% (ratio: 12000->192000)

Selected audio codec: [ffwmav2] afm: ffmpeg (DivX audio v2 (FFmpeg))

==========================================================================

AO: [pulse] Init failed: Connection refused

Failed to initialize audio driver 'pulse'

AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)

Video: no video

Starting playback...

A:674819.8 (187:26:59.8) of 0.0 (unknown)  6.6% 15%



pi@raspberrypi ~ $ mplayer http://80.86.106.110:8002/

AAC file format detected.

==========================================================================

Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders

libavcodec version 53.35.0 (external)

Mismatching header version 53.32.2

AUDIO: 44100 Hz, 2 ch, s16le, 0.0 kbit/0.00% (ratio: 0->176400)

Selected audio codec: [ffaac] afm: ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio))

==========================================================================

AO: [pulse] Init failed: Connection refused

Failed to initialize audio driver 'pulse'

AO: [alsa] 44100Hz 2ch s16le (2 bytes per sample)

Video: no video

Starting playback...

A:   2.9 (02.8) of 0.0 (unknown) 16.3% 28%



----

라즈베리 파이 B / ARMv6 / ARM11 vfp


$ mplayer mms://stream.polskieradio.pl/zagranica_wma10

A:674191.3 (187:16:31.3) of 0.0 (unknown)  7.1% 10%


$ mplayer mms://stream.polskieradio.pl/program3

A:674819.8 (187:26:59.8) of 0.0 (unknown)  6.6% 15%


$ mplayer http://80.86.106.110:8002/

A:   2.9 (02.8) of 0.0 (unknown) 16.3% 28%


-----

라즈베리 파이 2B / ARMv7 / Cortex-A7 quad neon


$ mplayer mms://stream.polskieradio.pl/zagranica_wma10

A:723685.4 (201:01:25.4) of 0.0 (unknown)  4.0% 24%


$ mplayer mms://stream.polskieradio.pl/program3

A:724356.9 (201:12:36.9) of 0.0 (unknown)  2.9% 25%


$ mplayer http://80.86.106.110:8002/

A:   2.4 (02.3) of 0.0 (unknown)  9.2% 31%



잠시 착각했으나..

cpu 점유율 / 캐시사용률 이다 -_-a

2015/01/26 - [프로그램 사용/ffmpeg / ffserver] - mplayer status line



Posted by 구차니
프로그램 사용/vi2015. 8. 4. 10:07


아랫방향 검색

/검색어 

n

윗방향 검색

?검색어

N



대소문자 구분

:set noci



대소문자 비구분

:set ci


치환

:%s/FROM/TO


치환(질문)

:%s/FROM/TO/c


정확한 치환

:%s/\<FROM\>/TO


치환 대소문자 비구분

:%s/FROM/TO/i


치환 파일전체

:%s/FROM/TO/g


[링크 : http://mwultong.blogspot.com/2006/09/vim-vi-gvim-find-and-replace.html]


+

2017.04.10

[링크 : https://kldp.org/node/74138]

'프로그램 사용 > vi' 카테고리의 다른 글

vim -X / X server 연결 하지 않기  (0) 2016.11.04
vi 버전 차이?  (0) 2016.07.09
vi 사각형 선택하기  (0) 2014.09.11
vi 유용한 플러그인 - F12 mouse 토글  (0) 2014.09.05
vi를 source insight 처럼 설정하기  (0) 2014.09.04
Posted by 구차니

트리플 악셀이 아닌게 다행인가?

아무튼 전화로 쑈를 하면서 KB은행 / KB손보 양쪽으로 전화질 하고 알아냈...



오후 1시에 하니 대기 시간 6분 이상 걸린대서

채팅 상담을 하려니 야!!!! 이거 IE 맞거덩?!?!?!?!


그리고 약.. 4시간 걸려서 답변(하지만 난 메일을 확인하지 않았지)

크앙!!! 6/24일 부터 변경되었는데 왜 돈 뺴가는 나에게는 안알랴줌?!?!?!


'개소리 왈왈 > 직딩의 비애' 카테고리의 다른 글

애본다 바빠 ㅠㅠ  (0) 2015.08.22
경복궁 / 창덕궁 야간개장 예매 준비!  (0) 2015.08.05
8월 할일  (0) 2015.08.02
8월...  (0) 2015.08.01
아 빔프로젝터 사고 싶다.  (0) 2015.07.18
Posted by 구차니
embeded/Cortex-M3 Ti2015. 8. 3. 17:19

요약하면..

GPIOPortIntRegister(GPIO_PORTA_BASE, PortAIntHandler);

GPIOPinTypeGPIOInput(GPIO_PORTA_BASE,GPIO_PIN_2);

GPIOIntTypeSet(GPIO_PORTA_BASE, GPIO_PIN_2, GPIO_RISING_EDGE);

GPIOPinIntEnable(GPIO_PORTA_BASE, GPIO_PIN_2);

이렇게 셋트로 해주면 P2는 rising_edge에서 PortAIntHandler 핸들러를 호출하게 되는건가?


그리고 핸들러에서는

GPIOPinIntStatus 를 사용해서 핀 별로 처리해주면 될 듯?


9.2.2.11 GPIOPinIntStatus

Gets interrupt status for the specified GPIO port.

Prototype:

long GPIOPinIntStatus(unsigned long ulPort, tBoolean bMasked)

Parameters:

ulPort is the base address of the GPIO port.

bMasked specifies whether masked or raw interrupt status is returned.

Description:

If bMasked is set as true, then the masked interrupt status is returned; otherwise, the raw interrupt status will be returned.

Returns:

Returns a bit-packed byte, where each bit that is set identifies an active masked or raw interrupt, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on. Bits 31:8 should be ignored. 



9.3 Programming Example

The following example shows how to use the GPIO API to initialize the GPIO, enable interrupts,

read data from pins, and write data to pins.

int iVal;
//
// Register the port-level interrupt handler. This handler is the
// first level interrupt handler for all the pin interrupts.
//
GPIOPortIntRegister(GPIO_PORTA_BASE, PortAIntHandler);
//
// Initialize the GPIO pin configuration.
//
// Set pins 2, 4, and 5 as input, SW controlled.
//
GPIOPinTypeGPIOInput(GPIO_PORTA_BASE,
GPIO_PIN_2 | GPIO_PIN_4 | GPIO_PIN_5);
//
// Set pins 0 and 3 as output, SW controlled.
//
GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_3);
//
// Make pins 2 and 4 rising edge triggered interrupts.
//
GPIOIntTypeSet(GPIO_PORTA_BASE, GPIO_PIN_2 | GPIO_PIN_4, GPIO_RISING_EDGE);
//
// Make pin 5 high level triggered interrupts.
//
GPIOIntTypeSet(GPIO_PORTA_BASE, GPIO_PIN_5, GPIO_HIGH_LEVEL);
//
// Read some pins.
//
iVal = GPIOPinRead(GPIO_PORTA_BASE,
(GPIO_PIN_0 | GPIO_PIN_2 | GPIO_PIN_3 |
GPIO_PIN_4 | GPIO_PIN_5));
//
// Write some pins. Even though pins 2, 4, and 5 are specified, those
// pins are unaffected by this write since they are configured as inputs.
// At the end of this write, pin 0 will be a 0, and pin 3 will be a 1.
//
GPIOPinWrite(GPIO_PORTA_BASE,
(GPIO_PIN_0 | GPIO_PIN_2 | GPIO_PIN_3 |
GPIO_PIN_4 | GPIO_PIN_5),
0xF4);
//
// Enable the pin interrupts.
//
GPIOPinIntEnable(GPIO_PORTA_BASE, GPIO_PIN_2 | GPIO_PIN_4 | GPIO_PIN_5);



9.2.2.4 GPIOIntTypeSet

Sets the interrupt type for the specified pin(s).


Prototype:

void GPIOIntTypeSet(unsigned long ulPort, unsigned char ucPins, unsigned long ulIntType)

Parameters:

ulPort is the base address of the GPIO port.

ucPins is the bit-packed representation of the pin(s).

ulIntType specifies the type of interrupt trigger mechanism.

Description:

This function sets up the various interrupt trigger mechanisms for the specified pin(s) on the selected GPIO port.

The parameter ulIntType is an enumerated data type that can be one of the following values:

GPIO_FALLING_EDGE

GPIO_RISING_EDGE

GPIO_BOTH_EDGES

GPIO_LOW_LEVEL

GPIO_HIGH_LEVEL

where the different values describe the interrupt detection mechanism (edge or level) and the particular triggering event (falling, rising, or both edges for edge detect, low or high for level detect).

The pin(s) are specified using a bit-packed byte, where each bit that is set identifies the pin to be accessed, and where bit 0 of the byte represents GPIO port pin 0, bit 1 represents GPIO port pin 1, and so on.

Note:

In order to avoid any spurious interrupts, the user must ensure that the GPIO inputs remain stable for the duration of this function.

Returns:

None.





[링크 : https://e2e.ti.com/support/microcontrollers/stellaris_arm/f/471/t/48738]

[링크 : http://elk.informatik.fh-augsburg.de/cdrom-stellaris/LM3S811/rasware-read-only/RASLib/src/encoder.c]

    [링크 : http://elk.informatik.fh-augsburg.de/cdrom-stellaris/LM3S811/rasware-read-only/RASLib/src/]

'embeded > Cortex-M3 Ti' 카테고리의 다른 글

lm3s stellarisware SPI  (0) 2015.10.05
cortex-m3 ROM direct call  (0) 2015.09.25
bitband / cortex-m3  (0) 2013.08.16
LM3S1968과 H-JTAG(wiggler)  (0) 2013.06.28
cortex-m3 JTAG / X-LinkEx 1.1  (0) 2013.06.11
Posted by 구차니
프로그램 사용/clang2015. 8. 3. 16:57

test.c:3:1: error: 'main' must return 'int'

clang은 int main() 아니면 배쨰는 중 -_-


음.. 코드가 허접한거라..

$ cat test.c

#include <stdio.h>


int main()

{

        int *p;


        free(p);

        return 0;

} 


시간은 큰 의미가 없지만.. 아무튼 빌드가 아니라 --analyze만 해서는

빠르게 작동하는 걸 보니 꽤 쓸만해 보이기도?


$ time gcc -o gcc.o test.c

test.c: In function ‘main’:

test.c:7:2: warning: incompatible implicit declaration of built-in function ‘free’ [enabled by default]


real    0m0.611s

user    0m0.510s

sys     0m0.070s


$ time clang -o gcc.o test.c

test.c:7:2: warning: implicit declaration of function 'free' is invalid in C99

      [-Wimplicit-function-declaration]

        free(p);

        ^

1 warning generated.


real    0m0.728s

user    0m0.560s

sys     0m0.110s



$ time clang -o gcc.o test.c --analyze

test.c:7:2: warning: Function call argument is an uninitialized value

        free(p);

        ^    ~

1 warning generated.


real    0m0.325s

user    0m0.220s

sys     0m0.080s



$ time gcc -o gcc.o test.c -fsyntax-only
test.c: In function ‘main’:
test.c:7:2: warning: incompatible implicit declaration of built-in function ‘free’ [enabled by default]

real    0m0.185s
user    0m0.140s
sys     0m0.030s

어?


'프로그램 사용 > clang' 카테고리의 다른 글

semgrep  (0) 2023.04.17
cppcheck 사용  (0) 2023.04.17
clang on ubnutu  (0) 2015.08.03
llvm / clang / cppcheck  (0) 2015.02.21
Posted by 구차니
프로그램 사용/clang2015. 8. 3. 16:05

clang이 요즘 뜨는건지.. 한번 해보려는데.. 흐음...

일단 귀차니즘으로.. (-_-) 라즈베리 파이에 ㅋㅋ


$ sudo apt-get install clang

패키지 목록을 읽는 중입니다... 완료

의존성 트리를 만드는 중입니다

상태 정보를 읽는 중입니다... 완료

다음 패키지를 더 설치할 것입니다:

  libclang-common-dev libffi-dev libllvm3.0 llvm-3.0 llvm-3.0-dev llvm-3.0-runtime

제안하는 패키지:

  llvm-3.0-doc

다음 새 패키지를 설치할 것입니다:

  clang libclang-common-dev libffi-dev libllvm3.0 llvm-3.0 llvm-3.0-dev llvm-3.0-runtime

0개 업그레이드, 7개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.

24.2 M바이트 아카이브를 받아야 합니다.

이 작업 후 71.3 M바이트의 디스크 공간을 더 사용하게 됩니다.

계속 하시겠습니까 [Y/n]?

받기:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libllvm3.0 armhf 3.0-10 [6,778 kB]

받기:2 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libclang-common-dev armhf 1:3.0-6.2 [76.7 kB]

받기:3 http://mirrordirector.raspbian.org/raspbian/ wheezy/main clang armhf 1:3.0-6.2 [4,510 kB]

받기:4 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libffi-dev armhf 3.0.10-3+b3 [113 kB]

받기:5 http://mirrordirector.raspbian.org/raspbian/ wheezy/main llvm-3.0-runtime armhf 3.0-10 [40.7 kB]

받기:6 http://mirrordirector.raspbian.org/raspbian/ wheezy/main llvm-3.0 armhf 3.0-10 [1,215 kB]

받기:7 http://mirrordirector.raspbian.org/raspbian/ wheezy/main llvm-3.0-dev armhf 3.0-10 [11.5 MB]

내려받기 24.2 M바이트, 소요시간 17초 (1,386 k바이트/초)

Selecting previously unselected package libllvm3.0:armhf.

(데이터베이스 읽는중 ...현재 120356개의 파일과 디렉터리가 설치되어 있습니다.)

libllvm3.0:armhf 패키지를 푸는 중입니다 (.../libllvm3.0_3.0-10_armhf.deb에서) ...

Selecting previously unselected package libclang-common-dev.

libclang-common-dev 패키지를 푸는 중입니다 (.../libclang-common-dev_1%3a3.0-6.2_armhf.deb에서) ...

Selecting previously unselected package clang.

clang 패키지를 푸는 중입니다 (.../clang_1%3a3.0-6.2_armhf.deb에서) ...

Selecting previously unselected package libffi-dev:armhf.

libffi-dev:armhf 패키지를 푸는 중입니다 (.../libffi-dev_3.0.10-3+b3_armhf.deb에서) ...

Selecting previously unselected package llvm-3.0-runtime.

llvm-3.0-runtime 패키지를 푸는 중입니다 (.../llvm-3.0-runtime_3.0-10_armhf.deb에서) ...

Selecting previously unselected package llvm-3.0.

llvm-3.0 패키지를 푸는 중입니다 (.../llvm-3.0_3.0-10_armhf.deb에서) ...

Selecting previously unselected package llvm-3.0-dev.

llvm-3.0-dev 패키지를 푸는 중입니다 (.../llvm-3.0-dev_3.0-10_armhf.deb에서) ...

man-db에 대한 트리거를 처리하는 중입니다 ...

install-info에 대한 트리거를 처리하는 중입니다 ...

libllvm3.0:armhf (3.0-10) 설정하는 중입니다 ...

libclang-common-dev (1:3.0-6.2) 설정하는 중입니다 ...

clang (1:3.0-6.2) 설정하는 중입니다 ...

libffi-dev:armhf (3.0.10-3+b3) 설정하는 중입니다 ...

llvm-3.0-runtime (3.0-10) 설정하는 중입니다 ...

llvm-3.0 (3.0-10) 설정하는 중입니다 ...

llvm-3.0-dev (3.0-10) 설정하는 중입니다 ...


$ ls  -al /usr/bin/clang*
-rwxr-xr-x 1 root root 10524368 10월 18  2013 /usr/bin/clang
lrwxrwxrwx 1 root root        5 10월 18  2013 /usr/bin/clang++ -> clang

$ ls -al /usr/bin/scan-*
lrwxrwxrwx 1 root root 36 10월 18  2013 /usr/bin/scan-build -> ../share/clang/scan-build/scan-build
lrwxrwxrwx 1 root root 34 10월 18  2013 /usr/bin/scan-view -> ../share/clang/scan-view/scan-view


빌드 시간이나 바이너리 사이즈나.. clang이 우세한 듯...

$ time clang++ a.cpp

real    0m2.595s
user    0m2.350s
sys     0m0.210s

$ time g++ a.cpp

real    0m3.307s
user    0m2.490s
sys     0m0.230s

$ ls -al *.out
-rwxr-xr-x 1 pi pi 6033  8월  3 07:37 clang++.out
-rwxr-xr-x 1 pi pi 6492  8월  3 07:38 g++.out

$ strip *.out
$ ls -al *.out
-rwxr-xr-x 1 pi pi 3396  8월  3 07:39 clang++.out
-rwxr-xr-x 1 pi pi 3616  8월  3 07:39 g++.out



정적분석을 지원한다는데 잘 모르겠다.. 어떻게 쓰는지는 ㅠㅠ
clang static analyzer


$ scan-build clang++ a.cpp

scan-build: 'clang' executable not found in '/usr/share/clang/scan-build/bin'.

scan-build: Using 'clang' from path: /usr/bin/clang

scan-build: Removing directory '/tmp/scan-build-2015-08-03-1' because it contains no reports.


$ scan-build g++ a.cpp
scan-build: 'clang' executable not found in '/usr/share/clang/scan-build/bin'.
scan-build: Using 'clang' from path: /usr/bin/clang
scan-build: Removing directory '/tmp/scan-build-2015-08-03-1' because it contains no reports.

[링크 : http://web.cs.ucla.edu/~tianyi.zhang/tutorial.html]


$ clang --analyze a.cpp

[링크 : http://kthan.tistory.com/158]

'프로그램 사용 > clang' 카테고리의 다른 글

semgrep  (0) 2023.04.17
cppcheck 사용  (0) 2023.04.17
clang 으로 컴파일  (0) 2015.08.03
llvm / clang / cppcheck  (0) 2015.02.21
Posted by 구차니