ARM GCC 에서 제공되는 printf 함수는 플레시 메모리를 많이 먹는다.
첨부파일의 iprintf.c 에서 제공되는 iprintf() 함수를 이용하면 플레시 메모리 조금만 할당되면서도 UART로 기존 printf 로 전송했던 것을 구현가능하다.
단, 지원되는 specifier가 아래표 처럼 제한되어있으나, 디버깅용으로 데이터 전송시 충분하다.
Table 1. iprintf() Format Specifiers
%s | Array of char |
%d | Integer in decimal format |
%c | Char single character |
%x | Integer in hexadecimal format |
사용법. (pSoC4 시리즈 기준으로 설명)
1. 아래 파일 iprintf.c와 iprintf.h 를 다운.
2. 위 2개 파일을 펌웨어 프로젝트에 추가.
3. iprintf.c 파일의 iputc() 함수 수정.
UART 컴포넌트 추가하고 그 이름이 SCB_1 이었다면 iprintf.c 파일내의 iputc() 함수내에 SCB_1_UartPutChar(ch) 로 수정한다.
SCB (Serial Communiation Block) 으로 UART 를 구현하지 않고 SW Tx Uart 모듈을 사용하는 경우에는 모듈이름_PutChar(ch)로 수정한다.
4. iprintf() 함수 사용할 곳에서 #include "iprintf.h"
그리고 아래 코드처럼 사용하면 됨.
상기 정보 원본 : http://www.cypress.com/?id=4&rID=81086
/// 221.
'임베디드.일렉트로닉스' 카테고리의 다른 글
싸이프레스 pRoC BLE칩의 소비전류 wakeup time-CYBL10X6X 패밀리 (0) | 2015.03.15 |
---|---|
pSoC4 저전력모드-Low Power Mode. (0) | 2015.03.14 |
Bluetooth GATT 기반 프로파일, 서비스, Characteristic 표준 리스트. (0) | 2015.03.10 |
pSoC4 BLE - Cypress Bluetooth Low Energy (0) | 2014.11.30 |
PRoC BLE - cypress사의 블루투스 LE 칩. (0) | 2014.11.30 |
댓글