2018년 2월 26일 월요일

Silicon Lab Download Warning message

Silicon Laboratories 에서 build 된 hex 파일을 다운로드 할 때 Warning message

Warning! An attempt was made to modify address 2200 which is restricted!
Continue download?

말 그대로 수정이 금지된 메모리 주소인 2200 을 수정하려고 한다는 이미이며

실제 사용 가능하지 않는 메모리 영역에 쓰려고 할 때 이 문제가 발생 하였다.

구체적으로는 어떤 상황이었나면
1. C8051F582(64k flash) 에서 사용하던 코드를 C8051F547(8k flash) 에서 사용하려고 해서 위 Warning이 떴고 실제 Code영역의 크기가 10k 를 넘었다.
2. 프로그램의 버전을 Linker 의 옵션으로 주었고 "CODE(?CO?VER(0x7FF6))" 이 때 사용하는 영역인 0x7FF6 이 사용 가능한 메모리 크기를 넘어 위 메시지가 떴다.


2018년 2월 23일 금요일

Cross Compiler

크로스 컴파일러(cross compiler)는 컴파일러가 실행되는 플랫폼이 아닌 다른 플랫폼에서 실행 가능한 코드를 생성할 수 있는 컴파일러이다. 크로스 컴파일러 툴은 임베디드 시스템 혹은 여러 플랫폼에서 실행파일을 생성하는데 사용된다. 이것은 운영 체제를 지원하지 않는 마이크로컨트롤러와 같이 컴파일이 실현 불가능한 플랫폼에 컴파일하는데 사용된다. 이것은 시스템이 사용하는데 하나 이상의 플랫폼을 쓰는 반가상화에 이 도구를 사용하는 것이 더 일반적이게 되었다.

내 PC에서 Compile 할 때 특정 Chip 에서 돌아가는 명령을 만들고 싶다면(Assembly, Binary) 해당 Chip 에서 받아들일 수 있는 명령을 만드는 Compiler를 만들어야 한다.

Clock Stretching

참조: Link

송신에는 clock stretching 이 있고 수신에는 Clock stretching 이 없는 이유
송신일 때는 데이터를 보내고 다음 클럭 신호를 보낸 후 잠시 응답을 기다려야 함
수신 모드일 때는 데이터를 받고 다음 클럭 신호를 받아 응답을 해줘야 함

둘의 차이점은
송신은 데이터를 보낸 후 응답을 기다리는 것이고,
수신은 데이터를 받은 후 응답을 해주는 것이다.

송신은 자신의 속도로는 끝났지만 기다려 주기 때문에 송신때만 clock stretching 이 있다.

참조: Link

I2C 통신에서 마스터 장치는 클럭 속도를 결정합니다. RS232와는 달리 I2C 버스는 마스터와 슬레이브가 사전 정의 된 baud rate와 정확하게 동기화되는 것을 완화할 수 있도록 명시적인 클럭 신호를 제공합니다.

I2C 슬레이브가 마스터가 제공하는 클럭 속도와 상호 작용할 수없고 약간 느려질 필요가있는 상황이 있습니다. 이것은 클럭 스트레칭이라고하는 메커니즘에 의해 수행됩니다.

I2C 슬레이브는 버스 속도를 줄여야하는 경우 시계를 잡고 있을 수 있습니다. 반면에 마스터는 클럭 신호를 하이 상태로 해제 한 후 클록 신호를 다시 읽고 라인이 실제로 하이가 될 때까지 기다려야합니다.

Bandwidth
클럭 스트레칭은 다소 이상하게 들리지만 일반적인 관행입니다. 그러나 공유 버스의 전체 대역폭은 상당히 줄어들 수 있습니다. 따라서 특히 여러 장치가 공유하는 I2C 버스의 경우 클록 스트레칭의 영향을 평가하는 것이 중요합니다. 가장 느린 I2C 장치가 버스 성능을 지배하지 않도록하십시오.

ISO26262

참조: Link

ISO 26262의 목적은 모든 자동차 E/E(전기 및 전자) 시스템의 안전관련 규약들을 표준화하는 것

이 공인된 ISO 26262의 초안을 변호사들이 최신 인증 기술로 인정하여 이용할 수 있

독일 법에 따르면 자동차의 오작동으로 인한 인적 피해에 대해서는 자동차 제조업체가 법적 책임이 따르게 되지만, 이러한 경우, 최신 기술을 통해 오작동을 발견되지 않을 경우에는 법적 책임이 없어지게 됩니다.

ISO 26262 표준은 개발부터 폐기까지 전반적인 제품 개발 프로세스에 관한 규제 사항과 권고사항을 제공합니다. 이 표준은 시스템 또는 컴포넌트에 수용 가능한 위험 수준을 할당하는 방법과 전체 테스트 프로세스의 문서화를 상세히 기술합니다. 일반적으로 ISO 26262는:

자동차 안전 수명관리(관리, 개발, 생산, 운영, 서비스, 폐기)를 제공하고 라이프사이클 주기의 각 단계에 따른 필요한 활동의 조정을 지원합니다.
자동차의 위험 등급(Automotive Safety Integrity Level, ASIL)을 결정하기 위해 자동차에 특화된 위험 기반 접근 방식을 제공합니다.
ASIL을 사용하여 수용 가능한 추가적인 위험을 수용하기 위한 컴포넌트의 필요한 안전 요구사항을 제공합니다.
충분하고 수용가능한 안전 수준을 보장하기 위한 검증 및 확인 방식에 요구사항을 제공합니다.

Automotive Safety Integrity Level (ASIL)
위험 노출 확률, 운전자가 수행 가능한 제어력, 심각한 문제가 발생할 경우 일어날 수 있는 결과의 심각성들이 조합된 내용을 기초로 위험성 평가가 ASIL로 이어집니다. ASIL은 시스템에서 사용되는 기술들을 다루지는 않습니다. ASIL은 운전자와 도로 위의 다른 운전자들에게 미치는 위험성에만 초점을 맞추고 있습니다.

각 안전 요구사항은 ASIL의 A, B, C 또는 D등급으로 나뉘는데, 여기서 D등급이 안전이 중요한 프로세스와 엄격한 테스트 규제를 가지는 등급입니다. ISO 26262 표준은 컴포넌트의 ASIL의 구성요소를 기반으로 하여 최소한의 테스트 요구사항을 상세히 파악합니다. 따라서 테스트에 반드시 사용되어야 하는 방식을 판단하는 데 도움이 됩니다. ASIL이 결정되고 나면, 시스템에 대한 안전 목표가 형성됩니다. 이로써 안전을 보장하기 위해 필요한 시스템 동작이 정의됩니다.

예를 들어, 윈드실드 와이퍼 시스템을 생각해보겠습니다. 와이퍼 기능이 오작동할 경우 운전자의 시야에 끼칠 영향을 안전 분석이 결정하게 될 것입니다. ASIL은 특정 레벨의 제품 무결성에 도달에 적합한 방식을 결정하기 위한 가이드를 제공합니다. 이 가이드는 현재 안전 방식을 보완하기 위해 제작되었습니다. 현재 자동차들은 이미 높은 안전성을 가지도록 제조되고 있지만, ISO 26262는 업계들 간의 특정한 방식들을 표준화하기 위해 제정되었습니다.

7. 테스트 툴 조건
ISO 26262 개발 과정 중 테스트는 중요한 컴포넌트입니다. 안전이 중요한 시스템은 반드시 테스트 시나리오에 적절히 응답하고 여러 인적 및 환경 입력에 노출되었을 때 특정 안전 한계치를 벗어나면 안됩니다. 고품질의 테스트 시스템을 사용하면 제품의 성능을 개선하고 품질과 안정성은 높이며 문제 발생율을 낮출 수 있습니다. 현장이 아닌 생산 중에 에러를 발견하면 실패 비용이 10배까지 줄어들고 생산 단계가 아닌 디자인 단계에서 에러가 발견되면 또 10배까지 비용을 절감할 수 있다고 평가되었습니다. 테스트는 이러한 오류들을 발견하고 데이터를 발견하여 디자인 또는 프로세스를 개선하기 때문에 회사와 조직에 귀중한 가치를 제공합니다. 새로운 기술의 도입과 최적의 방법론으로 프로세스에 혁신을 주도하면 상당한 효율성을 얻고 비용은 줄일 수 있습니다. 툴을 간과하고 시스템의 디자인만 생각하기 쉬운데, 툴은 최종 사용자의 안전에 있어 매우 중요합니다.

참조: Link
3. Automotive Safety Intergrity Level(ASIL)
- one of four levels to specify the item's or element's necessary requirments of ISO-26262 and safety measures to apply for avoiding an unreasonable residual risk, with D representing the most stringent and A the least stringent level
- ASIL은 item 혹은 element에 요구되는 불합리한 잔류 위험을 피하기 위한 안전대책에 대한 등급으로서  ISO 26262에서는 4개의 등급이 있으며, A가 가장 낮고, D가 가장 높음
- Item 정의로부터 차량 수준의 위험원 분석 및 리스크 평가( H&R) 를 통해 Item의 작동 불량으로 인한 피해의 심각성(Severity), 발생 가능성(Exposure), 통제 가능성 ( Controllability)에 의거 등급을 결정하며, 이를 ASIL이라고 함
- ASIL 등급 결정 방법은 Part 3에 명시되어 있음

SIL -> ASIL
정량적 평가 기준은 하드웨어만 있음
소프트웨어는 정량적 평가가 없음

참조: Link
ASIL 수준이 갖는 의미
- ISO 26262는 ASIL 수준에 따라 고장 상황에서도 설계자 및 시스템 엔지니어가 실현해야 하는 안전 요구사항을 정의하며, 시스템이 사용자(운전자, 승객, 도로 교통 이용자 등)의 안전에 대해 충분한 여유를 제공해야 한다.
- ASIL 수준은 특정 모듈에 결부되는 것이 아니라 특정 기능에 결부된다.
- ASIL 수준은 감지 가능성 향상 및 대응 조치 실행과 같이 동일한 기능을 수행하는 두 가지 개별적인 요소의 분리를 통해 낮출 수 있다.
- 구현된 방식 그대로 안전 핵심 기능의 추적 가능성을 입증할 수 있으려면 설계 사이클의 각 단계에서 적절한 증거를 유지해야 한다.

2018년 2월 22일 목요일

Splash screen


참조: Link

A splash screen is a graphical control element consisting of a window containing an image, a logo, and the current version of the software. A splash screen usually appears while a game or program is launching. A splash page is an introduction page on a website.[1][2] A splash screen may cover the entire screen or web page; or may simply be a rectangle near the center of the screen or page. The splash screens of operating systems and some applications that expect to be run in full screen usually cover the entire screen.
스플래시 화면은 이미지, 로고 및 소프트웨어의 현재 버전이 포함 된 창으로 구성된 그래픽 제어 요소입니다. 스플래시 화면은 대개 게임이나 프로그램이 시작될 때 나타납니다. 스플래시 페이지는 웹 사이트의 소개 페이지입니다. [1] [2] 스플래시 화면은 전체 화면 또는 웹 페이지를 포함 할 수 있습니다. 화면 또는 페이지 중앙 근처의 사각형 일 수 있습니다. 운영 체제의 스플래시 화면과 전체 화면에서 실행될 것으로 예상되는 일부 응용 프로그램은 일반적으로 전체 화면을 덮습니다.

-> 프로그램 처음 시작 시 뜨는 화면으로 로고 처럼 일부 화면일 수도 있고, 전체 화면을 바로 보여주는 것일수도 있다.

rendering, 렌더링


참조: Link

렌더링 방식은 기술적으로 매우 다양하지만, 그래픽 처리 장치(GPU) 같은 렌더링 장치를 통한 그래픽스 파이프라인을 따라 씬 파일에 저장되어있는 3차원 연출로부터 2차원의 그림을 만들어낸다는 점은 동일하다.

Level Shifter



네이버 지식사전: Link
디지털 게이트에 있어서 논리값 레벨을 조정하기 위하여 사용되는 저항, 접합 다이오드나 정전압 다이오드로서 이들 저항 또는 다이오드의 전압강하로 입력 또는 출력의 전압 레벨을 조정한다. 그림의 경우 정전류원의 작용으로 출력 레벨은 입력 레벨보다 대체로 rIE1만큼 인하되어 있다.

google 검색: Link
A level shifter in digital electronics, also called a logic-level shifter, is a circuit used to translate signals from one logic level or voltage domain to another, allowing compatibility between ICs with different voltage requirements, such as TTL and CMOS.[1][2] Many modern full featured systems use level shifters to bridge domains between low-power application processors running at 1.8 V and other system functions like sensors or other analog intensive applications running at 3.3 or 5V.