페이지

글목록

레이블이 Library인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Library인 게시물을 표시합니다. 모든 게시물 표시

2015년 12월 12일 토요일

PSOC Library Function 사용하기

1. PSOC Project 를 하나 만들어 놓고, Project 폴더 밑에 라이브러리를 넣어 둘 폴더를 1개 만들어 Library 파일을 넣어 둡니다.



2. 메뉴->project->build setting 을 클릭!



3. build settings 에서 라이브러리 이름,위치,파일을 선택하고 지정합니다.
여기서 이전 포스팅에서 주의하라고 했던 부분이 나옵니다.
lib + Lib name 으로 이름을 만들라고 했던 것은 library 이름을 lib가 포함해서 넣으면 아무리 컴파일해도 library를 찾을 수 없다는 에러 메세지를 보게 됩니다.
다시 한번 주의해 주십시요.
따라서 라이브러리 이름을 만들 때는 Lib를 앞에 꼭 붙이고 build settings 의 library 이름을 적을 때는 앞의 Lib를 떼고 이름을 적어 주시면 됩니다.



4. 다음으로 이 라이브러리 함수가 잘 동작하는 지 알아보기 위해서,
UART 함수를 이용해서 입력에 대한 출력값을 확인해 보겠습니다.
다음은 PSOC4에서 UDB를 75%나 사용하는 UART 함수를 만들어 넣어봤습니다.



5. PSOC4 042-KIT에서 테스트해 보려고 PORT는 P2.4에 Txd 를 연결해 두었습니다.



6. 다음은 실제 연결한 H/W 모습입니다.
PSOC4-042 키트의 P2.4(Txd)를 TTL-to-UART 를 거쳐 UART-to-USB로 PC와 연결했습니다.




7. 다음은 결선도를 좀 자세히 그려 보았습니다.



8. 이 H/W 에 의한 출력 결과인데, 입력에 해당하는 코드는 다음과 같습니다.
#include
#include
unsigned int aplusb(unsigned int a, unsigned int b);

int main()
{
    uint8_t tx_data[50];
   
    CyGlobalIntEnable; /* Enable global interrupts. */
    UART_1_Start();
   
    sprintf(tx_data,"a+b func out = %d\n\r",aplusb(10,17));
    UART_1_PutString(tx_data);
    /* Place your initialization/startup code here (e.g. MyInst_Start()) */

    for(;;)
    {
        /* Place your application code here. */
    }
}


9. 예상되는 출력은 10+17 = 27 이 되겠지요? 맞나 보겠습니다.



^^ Library 함수가 잘 동작하는 것이 눈으로 확인 되었습니다. 

"짝짝짝~"

PSOC Library Function 만들기

PSOC Creator 3.3 에서 라이브러리 함수 만드는 방법을 알아보겠습니다.

자료들을 찾아보니까, 많이 없고 영어라 이해하기가 힘들었는데..
이것저것 노가다를 해보다가 알아냈습니다.

이 글은 원래, 협력업체에 전달하기 위해 만들게 되었는데,
F/W 를 다루지 않는 윈도우/매킨토시 용 S/W를 하는 분이라 PSOC creator 인스톨 과정까지 다루게 되었습니다.

1. 먼저 PSOC Install 페이지 링크는 다음과 같습니다.
http://www.cypress.com/products/psoc-creator-integrated-design-environment-ide




2. 여기서 우측 위의 다운로드 링크를 클릭하면 다음으로 회원 가입하는 페이지가 나오니 가입하시고 다운 받으신 후에, 인스톨 하면 됩니다. 특별한 점은 없습니다. 다음->다음....



3. 자, 그럼 PSOC Creator 를 실행하시고 "메뉴->new->project" 를 마우스로 클릭.

4. 프로젝트 타입을 Library Project로 선택합니다.

5. 다음으로 라이브러리 프로젝트의 이름과 라이브러리 이름, 프로젝트 위치 등을 선택하고 지정합니다. 단, 주의할 점은 라이브러리 이름 앞에 꼭 Lib를 붙여 줘야합니다.
주의!주의!주의!   저는 처음 테스트 할 때, 이름을 Library01 로 했다가 나중에 사용할 때, 라이브러리 이름이 rary01 로 사용하게 된 적이 있었습니다. ^^

6. 이제 프로젝트가 만들어 졌고, 저는 libabplus 라는 이름으로 만들었습니다.
나중에 사용할 때는 lib가 빠지고 abplus 라는 라이브러리가 되는 거죠.
여기서 소스 파일(c)를 1개 만듭니다.
왼쪽 Source File 폴더에서 마우스 오른쪽 버튼을 누르고 New Item을 선택합니다.

7. C file을 선택하고 적당한 이름을 지어 줍니다.


8. 라이브러리 함수의 코드를 만들어 넣습니다.


9. 왼쪽 위의 컴파일 아이콘을 눌러 컴파일을 합니다.

10. 컴파일을 하고 나니 라이브러리 파일인 libabplus.a 가 생기는 것을 아래 콘솔창에서 확인 할 수 있습니다.

11. 혹시나 해서 실제로 생겼는지 확인해 보았습니다.

제대로 만들어 졌습니다. 확인은 이렇게 했고, 라이브러리를 사용하도록 다른 사람에게 넘겨 주려면 이 "xxx~.a(에제에서는 Libabplus.a)" 파일과 함수 프로토타입을 알려 주면 됩니다. H 파일에 함수 prototype 을 넣어 H 파일을 같이 넘겨 주셔도 됩니다.

여기까지 PSOC에서 Library function 만들기 포스팅이었습니다.