하드웨어/Storage2016. 3. 23. 19:07

SDXC 라고 하더라도 SDHC를 동시 지원하는게 많으니 SDHC 리더에서 된다는거야 안된다는거야..


SD compatibility table
 SDSC cardSDHC cardSDHC UHS-I cardSDHC UHS-II cardSDXC cardSDXC UHS-I cardSDXC UHS-II cardSDIO card
SDSC slotYesNoNoNoNoNoNoNo
SDHC slotYesYesYes[nb 1]Yes[nb 1]NoNoNoNo
SDHC UHS-I slotYesYesYesYes[nb 2]NoNoNoNo
SDHC UHS-II slotYesYesYesYesNoNoNoNo
SDXC slotYesYesYes[nb 1]Yes[nb 1]YesYes[nb 1]Yes[nb 1]No
SDXC UHS-I slotYesYesYesYes[nb 2]YesYesYes[nb 2]No
SDXC UHS-II slotYesYesYesYesYesYesYesNo
SDIO slotVariesVariesVariesVariesVariesVariesVariesYes

[링크 : https://en.wikipedia.org/wiki/Secure_Digital#Compatibility]




SD 초고용량 (SDXC™) 카드는 SDA 3.0 사양을 기반으로 하는 SD™ 메모리 카드입니다.


SDXC 용량은 64GB-2TB


기본 포맷 형식 : exFAT


SDXC는 기존 메모리와 달리 "exFAT" 라는 새로운 파일 시스템을 기반으로 하였기에 SD(128MB-2GB) 혹은 SDHC(4GB-32GB) 카드와 호환되는 장치에서 작동되지 않습니다.2010년 이후 생산된 대부분의 호스트 장치는 SDXC와 호환가능 해야 합니다.


호환성 여부를 확인하기을 위해, 카드가 사용될 기기에 SDXC란 로고가 있는지 꼭 확인하세요.(카메라, 캠코더 등)


참고 : 2008년 이전의 노트북에 내장된 카드 리더는 SDXC 카드를 지원하지 않을 수 있습니다. 만약 컴퓨터 운영체제에서 exFAT 지원하는 경우 SDXC 카드는 SDHC리더기 (SD 리더기 아님)에서 작동할 수 있습니다. exFAT에 대한 자세한 내용 : exFAT 파일 시스템을 지원하는 운영 체제 

[링크 : http://kb-ko.sandisk.com/app/answers/detail/a_id/4690/~/sd-%2F-sdhc-%2F-sdxc-사양-및-호환성]

[링크 : http://kb.sandisk.com/app/answers/detail/a_id/2520/kw/sdxc%20compatible]



문득.. HP TC-1100에서 SD 메모리가 1기가 정도 밖에 못 읽은게 구형 SD 표준 리더라 그런건가 싶네..

 SD StandardSDHC StandardSDXC Standard
Capacityup to 2GBmore than 2GB
up to 32GB
more than 32GB
up to 2TB

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



호환성은.. 새로 나온 카드/리더는 구버전에 못쓰나, 구버전꺼는 신버전에서 쓸 수 있다로 요약 끝

Understanding Backwards Compatibility

[링크 : https://www.sdcard.org/consumers/choices/file_system/index.html]



원래 SD1.0에서는 128bit의 CSD(Card Specific Data) register를 가지고 있는데 이 중 12비트(C_SIZE[73:62])가 메모리 클러스터 갯수(1~4096)를 나타내고 3비트(C_SIZE_MULT[49:47])가 클러스터 내의 블럭 갯수(000부터 111까지가 각각 4,8,16,32,64,128,256,512을 나타냄)를 나타낸다. 표준 블럭 크기는 512바이트라 초기 SD에서는 최대 4096*512*512 = 1GB까지 가능하다.

그 후 4비트(READ_BL_LEN[83:80], WRITE_BL_LEN[25:22])를 통해 블럭사이즈를 1024, 2048 바이트로 할 수 있게 되어 2G, 4G (4096*512*1024, 4096*512*2048)도 가능하게 되었다. (원래는 이 값이 일반적으로 512로 고정되어 있었음) 


다만 오래된 장비들은 이 부분이 스펙에 추가되었어도 2G, 4G를 인식하지 못하는 경우도 있다. SD Association의 스펙에 보면 다음의 문구가 들어있다. 

"2G짜리 카드를 만들기 위해서는 Maximum Block Length(READ_BL_LEN, WRITE_BL_LEN)을 1024로 만들어 줘야 한다. 하지만 CMD16에 의해 설정되는 Block Length는 최대 512 byte Block length를 가진 카드와 일관성을 유지하기 위해 최대 512까지만 사용할 수 있다."

[링크 : http://techblog.tistory.com/entry/SDvsSDHC]


2014/09/17 - [하드웨어] - sd/sdhc 규격

2012/05/07 - [하드웨어] - SD / SDHC / SDXC



+


4.10.2 SD Status

The SD Status contains status bits that are related to the SD Memory Card proprietary features and

may be used for future application-specific usage. The size of the SD Status is one data block of 512

bit. The content of this register is transmitted to the Host over the DAT bus along with a 16-bit CRC. The

SD Status is sent to the host over the DAT bus as a response to ACMD13 (CMD55 followed with

CMD13). ACMD13 can be sent to a card only in 'tran_state' (card is selected). The SD Status structure

is described in below. Unused reserved bits shall be set to 0.

The same abbreviation for 'type' and 'clear condition' were used as for the Card Status above.


5.3 CSD Register

The Card-Specific Data register provides information regarding access to the card contents. The CSD

defines the data format, error correction type, maximum data access time, whether the DSR register

can be used, etc. The programmable part of the register (entries marked by W or E, see below) can be

changed by CMD27. The types of the entries in the table below are coded as follows: R = readable,

W(1) = writable once, W = multiple writable.


au_size 관련은 status에 저장되어 있음








[링크 : https://www.sdcard.org/downloads/pls/pdf/part1_410.pdf]


카드의 종류 판독 방법


[링크 : https://www.sdcard.org/downloads/pls/pdf/partA2_300.pdf]



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

synology DSM 6.0 업데이트!  (0) 2016.03.30
시놀로지 업데이트.. DSM 6.0!  (0) 2016.03.25
synology nas update  (0) 2016.02.22
ipad용 ds file srt 자막 보기  (0) 2016.02.05
raid01 raid10  (0) 2016.01.31
Posted by 구차니
Linux/Ubuntu2016. 3. 23. 17:10

심심해서..

xming으로 연결해서 테스트 해봤더니

context 메뉴가 안드로메다로 간다



$ notepadqq

QXcbConnection: Failed to get the primary output of the screen

QXcbConnection: Failed to get the primary output of the screen

QXcbConnection: XCB error: 170 (Unknown), sequence: 162, resource id: 90, major code: 146 (Unknown), minor code: 20

QXcbConnection: XCB error: 170 (Unknown), sequence: 323, resource id: 90, major code: 146 (Unknown), minor code: 20


머지? 캡쳐 하려고 다시 실행하니 되네? ㄷㄷ

$ notepadqq

QXcbConnection: Failed to get the primary output of the screen

QXcbConnection: XCB error: 170 (Unknown), sequence: 162, resource id: 90, major code: 146 (Unknown), minor code: 20



아무튼.. Qt 기반인가 느리당... scite는 좀 그나마 빠른데 ㅠㅠ

'Linux > Ubuntu' 카테고리의 다른 글

우분투 버전별 리눅스 커널  (4) 2016.06.09
응컁컁 ubuntu 16.10 LTS!  (0) 2016.04.24
ubuntu 15.10 vino.. 접속 불가?  (0) 2016.02.16
ubuntu selinux... disabled?!  (0) 2016.02.15
ubuntu 15.10 가벼워졌네?  (0) 2016.02.12
Posted by 구차니
파일방2016. 3. 22. 14:49

notepadqq 라고 native하게 돌아가는 녀석도 있고..

오리지널(?)로 보이는 SciTE 도 .. 대체가 가능할테고..

gedit도 일단은 거의 유사하니까 머...


[링크 : http://itsfoss.com/notepad-alternatives-for-linux/]

[링크 : http://notepadqq.altervista.org/wp/]

'파일방' 카테고리의 다른 글

리눅스 텔레그램 콘솔... 그리고 서버제어?!  (0) 2016.04.08
avidemux 간단한 사용법 / 리눅스가 낫네!  (0) 2016.03.28
photostitcher  (0) 2016.03.15
Avidemux & Free Video Editor  (0) 2016.03.04
스크롤 캡쳐  (0) 2016.02.15
Posted by 구차니

파파몬의 네비가 오래되서 교체!


기존에는 K7을 썼는데

winCE 기반에 7인치/ 트리플 코어(엥?!?!?)

아무튼 오래되서 배터리도 오링나고, 자꾸 뻗고 그래서 이번에 교체!

엄밀하게는.. ARM 계열이 아니라 DSP 계열인가?


T1 OMAP 2530(3D가속칩 내장)

RAM: DDR 256MB, ROM:256MB NAND Flash, Storage: SDHC 8GB

[링크 : http://www.inavi.com/Products/Navi/NaviView/67?intPage=1]



특징

- 배터리 없음(슈퍼캡으로 시동거는 몇 초 버티는 수준?)

- AR 카메라 지원(micro USB 커넥터이니.. PC에 꽂으면 되려나?)

- wifi / bt 별매(전용 동글만 지원하는 듯 개인적으로 가지고 있는 버팔로 무선랜은 인식 불가 -_-)

- 후방 카메라 화질 괜찮은 듯

- 아직도 표준 SD 사이즈.. (microSD로 바꿔도 되지 않겠니..)

- 안드로이드 기반

- Exynos 4412 Quad(1.4G) / DDR2 1G / eMMC 8GB

- ADAS (앞차 출발 / 신호 바뀜 알림)

[링크 : http://www.inavi.com/Products/Navi/Gate?target=_x1_DASH]


아무튼.. ADAS로 인해서 앞차 출발 신호 바뀜에서 알려주니 신기하긴 한데

띵띵 거리는게 늘어서 귀찮고, 나가는 차선이라 차선변경해도 차선넘어감 경고가 귀찮..


그리고 엑시노스의 파워와 안드로이드로 나름... 수준이 아닌

완전 날아다니는 수준에 성능이라 대만족 << 요게 가장 중요

CPU가 머.. 갤 S3 급이니 당연히 좋아야 하려나?



불만사항으로는...

- 지도가 더 구려보여! by 파파몬(아무래도 extreme 3D 라고 하면서 텍스쳐 도배해서 그런걸지도..)

- 2d 모드라던가 골라서 보고 싶은데 그런건 잘 안보이네.. 아니면 텍스쳐 줄인 담백한 모드라던가?

- 화면이 작아졌어!!! 근데 선명해! by 파파몬 (근데 스펙상으로는 화면 사이즈/해상도는 같은거 같은데.. 7인치)

- 여전하지만.. 메뉴 depth가 깊고 분산되어 있어서 여전히 헤맴

- 걍.. 아무 USB 무선랜 쓸 수 있게 해주면 안되는거였니....

- 블박모드는 없는 듯?


Posted by 구차니
embeded/raspberry pi2016. 3. 21. 11:46

음.. 그런데 2b에서는 멀티코어인데 코어활성화 갯수 조절은 없으려나?



1. USB 허브 끄기(근데.. 유선랜도 꺼지려나?)

2. USB 안꼽기

3. HDMI 출력 끄기 (20mA~30mA ?)

4. 다운클럭하기 (/boot/config.txt)


[링크 : http://babaawesam.com/2014/01/24/power-saving-tips-for-raspberry-pi/]

Posted by 구차니
embeded/raspberry pi2016. 3. 20. 17:37


range는 0x20(32)가 기본이고 32bit까지 사용가능(int)

"PWM_RNG1의 값이 32보다 적다면, 처음 PWM_RNG의 첫번째 비트가 잘려진 비트가 전송되어진다. 만약 32를 넘는 경우 초과된 0 비트는 데이터의 끝에서 부터 붙여진다. 기본값은 32이다."

If the value in PWM_RNGi is less than 32, only the first PWM_RNGi bits are sent resulting in a truncation. If it is larger than 32 excess zero bits are padded at the end of data. Default value for this register is 32.


번역하려고 해도 무슨 의미인지 모르겠네 -_-

32 미만은 LSB가 0으로 보내진다는건가? (즉, 짝수로만 셋팅가능?)

그리고 32 이상은 초과된 0비트에 대해서 끝으로 부터 붙는다는건.. 32 이상에 대해서는 32의 배수로만 적용이 가능하거나 승수로만 가능하다는건가? (예를들어 36이라던가 이런식은 설정 불가)




그리고 클럭은... 기본이 100MHz 이지만 다양하게 들어올 수 있다 정도?


음.. range는 그냥 넣고.. 하드웨어적으로 자르고

클럭은.. int로 받지만 실제로는 12비트만 사용이 가능하고(즉,, 0~4095)

기본값 내용이 없는지라..

void pwmSetRange (unsigned int range)

{

  if ((wiringPiMode == WPI_MODE_PINS) || (wiringPiMode == WPI_MODE_PHYS) || (wiringPiMode == WPI_MODE_GPIO))

  {

    *(pwm + PWM0_RANGE) = range ; delayMicroseconds (10) ;

    *(pwm + PWM1_RANGE) = range ; delayMicroseconds (10) ;

  }

}


void pwmSetClock (int divisor)

{

  uint32_t pwm_control ;

  divisor &= 4095 ;


  if ((wiringPiMode == WPI_MODE_PINS) || (wiringPiMode == WPI_MODE_PHYS) || (wiringPiMode == WPI_MODE_GPIO))

  {

    if (wiringPiDebug)

      printf ("Setting to: %d. Current: 0x%08X\n", divisor, *(clk + PWMCLK_DIV)) ;


    pwm_control = *(pwm + PWM_CONTROL) ;                // preserve PWM_CONTROL


// We need to stop PWM prior to stopping PWM clock in MS mode otherwise BUSY

// stays high.


    *(pwm + PWM_CONTROL) = 0 ;                          // Stop PWM


// Stop PWM clock before changing divisor. The delay after this does need to

// this big (95uS occasionally fails, 100uS OK), it's almost as though the BUSY

// flag is not working properly in balanced mode. Without the delay when DIV is

// adjusted the clock sometimes switches to very slow, once slow further DIV

// adjustments do nothing and it's difficult to get out of this mode.


    *(clk + PWMCLK_CNTL) = BCM_PASSWORD | 0x01 ;        // Stop PWM Clock

      delayMicroseconds (110) ;                 // prevents clock going sloooow


    while ((*(clk + PWMCLK_CNTL) & 0x80) != 0)  // Wait for clock to be !BUSY

      delayMicroseconds (1) ;


    *(clk + PWMCLK_DIV)  = BCM_PASSWORD | (divisor << 12) ;


    *(clk + PWMCLK_CNTL) = BCM_PASSWORD | 0x11 ;        // Start PWM clock

    *(pwm + PWM_CONTROL) = pwm_control ;                // restore PWM_CONTROL


    if (wiringPiDebug)

      printf ("Set     to: %d. Now    : 0x%08X\n", divisor, *(clk + PWMCLK_DIV)) ;

  }


[링크 : http://www.farnell.com/datasheets/1521578.pdf]

2015/10/16 - [개소리 왈왈/라즈베리 파이(rpi)] - bcm2835 pwm 데이터시트

2015/10/16 - [개소리 왈왈/라즈베리 파이(rpi)] - wiringpi pwm 라이브러리 분석?

2015/10/14 - [개소리 왈왈/라즈베리 파이(rpi)] - 라즈베리 파이 GPIO 유틸 PWM


The Raspberry Pi PWM clock has a base frequency of 19.2 MHz. This frequency, divided by the argument to pwmSetClock(), is the frequency at which the PWM counter is incremented. When the counter reaches a value equal to the specified range, it resets to zero. While the counter is less than the specified duty cycle, the output is high, otherwise the output is low.


This means, if you want to set the PWM to have a specific frequency, you can use the following relationship:


pwmFrequency in Hz = 19.2e6 Hz / pwmClock / pwmRange.


pwmSetClock(1); -> 2.342kHz

pwmSetClock(2); -> 4.81MHz

pwmSetClock(3); -> 3.19MHz

pwmSetClock(4); -> 2.398MHz

pwmSetClock(5); -> 1.919MHz

pwmSetClock(6); -> 1.6MHz

pwmSetClock(7); -> 1.3MHz

pwmSetClock(8); -> 1.2MHz

pwmSetClock(9); -> 1.067MHz

pwmSetClock(10); -> 959kHz

pwmSetClock(11); -> 871kHz

pwmSetClock(20); -> 480kHz

pwmSetClock(200); -> 48kHz

pwmSetClock(500); -> 19kHz

pwmSetClock(1000); -> 9.59kHz

pwmSetClock(2000); -> 4.802kHz

pwmSetClock(4000); -> 2.401kHz

pwmSetClock(5000); -> 10.58kHz

[링크 : http://raspberrypi.stackexchange.com/questions/4906/control-hardware-pwm-frequency]



음.. pwmc에 100 넣으면 1/100 으로 DIV 되서 1Mhz 로 작동해야 하는데.. 위에 실험은 출력이 달라서 그럴려나?

   #define PWMCTL (*(volatile uint32_t *)0x2020c000)

   #define PWMSTA (*(volatile uint32_t *)0x2020c004)

   #define PWMDMAC (*(volatile uint32_t *)0x2020c008)

   #define PWMRNG1 (*(volatile uint32_t *)0x2020c010)

   #define PWMDAT1 (*(volatile uint32_t *)0x2020c014)

   #define PWMFIF1 (*(volatile uint32_t *)0x2020c018)

   #define PWMRNG2 (*(volatile uint32_t *)0x2020c020)

   #define PWMDAT2 (*(volatile uint32_t *)0x2020c024)


   #define CM_PWMCTL (*(volatile uint32_t *)0x201010a0)

   #define CM_PWMDIV (*(volatile uint32_t *)0x201010a4)


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

Posted by 구차니
embeded/raspberry pi2016. 3. 19. 20:39

그냥 pc 스피커 굴러 다니는게 있길래

마침 4핀 짜리고 해서 꽂아서 pwm으로 해보니 소리가 난다 -ㅁ-!?


아무튼.. pwm-ms와 pwm-bal의 출력방식이 다르니 소리가 다르게 난다.


$ gpio mode 1 pwm

$ gpio pwm-ms

$ gpio pwm 1 7


$ gpio pwm-bal 

$ gpio pwm 1 7




+

2016.04.13

미친척 오실로 스코프로 찍어보니..

$ gpio mode 1 pwm

$ gpio pwm 1 512

$ gpio pwmc 10



7  2680 Hz

8  2343 Hz

9  2083 Hz

10 1875 Hz

11 1704 Hz

12 1562 Hz

13 1443 Hz

14 1339 Hz

15 1250 Hz

16 1172 Hz

17 1103 Hz

18 1042 Hz





클럭을 가지고 하기에는 좀 그렇고... 어떻게 해야 하려나?

[링크 : http://thomson.tistory.com/638]

Posted by 구차니
Programming/C Win32 MFC2016. 3. 18. 20:49



[링크 : https://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html]

[링크 : https://msdn.microsoft.com/ko-kr/library/ms177415.aspx]

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

MFC UpdateData()  (0) 2016.12.16
윈도우에서 dll 동적 라이브러리 사용하기  (0) 2016.04.04
#import ?  (0) 2015.12.21
"\n" 의 cpu 점유율?  (0) 2015.10.12
rand()와 RAND_MAX  (0) 2015.10.05
Posted by 구차니

...?!?!?!?




'게임 > 오리진&스팀&유플레이' 카테고리의 다른 글

tropico 4 무료  (0) 2016.09.09
오리진의 선물!  (0) 2016.03.26
오리진의 선물 - NFS 모스트 원티드  (0) 2016.02.03
스팀 195개.. 오리진 45개?  (0) 2016.01.12
인디갈라 획득 실패 ㅠㅠ  (0) 2015.12.18
Posted by 구차니

locky에 당한거라 그런지.. CryptoLocker로는 탐지가 안되네


$ sudo apt-get install python python-pycryptopp

$ git clone https://github.com/kyrus/crypto-un-locker

$ cd crypto-un-locker/

$ ./CryptoUnLocker.py --detect ../locky/ -v -r

[.] Not a CryptoLocker file: ../locky/93884EE06F58D7ED0D84C61528753B96.locky

[.] Not a CryptoLocker file: ../locky/_Locky_recover_instructions.bmp

[.] Not a CryptoLocker file: ../locky/93884EE06F58D7EDCEFB320EC0C56FAF.locky

[.] Not a CryptoLocker file: ../locky/93884EE06F58D7ED2D945114FFCD5746.locky

[.] Not a CryptoLocker file: ../locky/93884EE06F58D7ED71B7B22B28863630.locky

[.] Not a CryptoLocker file: ../locky/93884EE06F58D7ED087EB261AF14131B.locky

[.] Not a CryptoLocker file: ../locky/_Locky_recover_instructions.txt


[링크 : https://github.com/kyrus/crypto-un-locker]



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

다음 약도만들기 서비스  (0) 2016.03.31
po지름wer!!!  (0) 2016.03.24
망할 locky 랜섬웨어 -_-  (3) 2016.03.16
아.. 멀 사지.. 멀 사면 행복할까?  (0) 2016.03.05
야근야근 열매  (0) 2016.03.01
Posted by 구차니