이전에 USB 브트로더를 만들었는데, 이번에 만들 APP 에서 부트로더 HEX 파일을 이용할 것입니다.
간략하게 말하면 기존 APP 의 TopDesign.cysch 탭에 부트로더블을 추가하고,
기존에 만든 부트로더의 HEX 파일을 연결해 주고 컴파일하여 Bootloader Host 라는 툴로 다운로드해 주면 됩니다.
이정도로 이해가 되면 좋겠지만, 조금 더 설명을 드리겠습니다.
앱을 그냥 예제를 이용해서 만듭시다.
2. 아무 예제나 1개 불러 오겠습니다.
3. 그냥 만만한 systick 예제를 선택했습니다.
4. 자자.. 다음,finish 눌러 주면 다음과 같은 topdesign.cysch 가 보입니다. 아직 브트로더블 상태가 아닙니다.
5. system 의 부트로더블 콤포넌트를 끌어다 아무 자리에나 놓습니다.
6. 여기서 1가지만 더 추가하면 됩니다.
부트로더블 콤포넌트를 더블큭릭하고, Denpendencies 탭을 선택한 다음, 이전에 만들어 놓았던 부트로더의 결과물인 HEX 파일과 ELF 파일을 찾아서 연결해 줘야 합니다.
7. 잘 찾아서 연결합시다. 다음 위치에 기존의 bootloader를 컴파일하면 자동으로 만들어 집니다.
...\USBFS_Bootloader\USBFS_Bootloader\USBFS_Bootloader.cydsn\ARM_GCC_493\Debug
8. HEX 파일만 찾아서 연결하면 ELF는 자동으로 연결되니, ELF까지 찾아서 연결하진 마시고요.
이렇게 한 후, 컴파일만 해 줍니다. 디버거 연결한 체로 프로그램 버튼 누르시면 기존에 넣어 두신 부트로더 지워지니 조심하십시요.
9. 툴 메뉴의 bootloader Host 를 선택합니다.
10. 부트로더 호스트 프로그램이 새 창으로 실행됩니다. 아 .. 그전에 PSOC 059 키트의 USB 포트에 PC와 연결합니다.
저도 가끔 실수하는데, 이 059 KIT는 디버거와 타겥보드가 한몸이라 USB 포트에 타겥보드를 연결한 걸로 실수를 하는 경우가 많네요.
11. 이렇게 연결해 놓고 Bootloader Host를 실행하면, USB Human Interface Device (04B4_B71D) - USB 라는 장치가 보일 것입니다. 선택하세요.
12. 좀 전에 부트로더블 콤포넌트를 추가해서 만든 APP 를 컴파일해서 나온 cyacd 확장자로 된 파일을 다운로드할 파일로 선택합니다.
참고로 부트로더블로 설정된 APP는 디버깅이 안됩니다. 디버깅하려면, 부트로더블 콤포넌트를 제거해야 합니다.
또, 부트로더블 APP 은 디버거로 프로그램할 수도 있습니다. 하지만 부트로더가 내부에 들어 있으면 지워지고, 일만적인 APP 프로그램 다운로드한 것과 같은 상태가 됩니다.
14. 부트로더가 다운로드 되면 HID 가 없어집니다. 부트로더가 동작해야 HID가 나타나는데, 현재 APP이 동작하니까 없어지는 것이 당연하겠죠.
15. 프로그램 동작을 확인해 보니 잘 동작 합니다. 혹시 059 kit 로 설정했는데, 저처럼 device 가 cy8c5868 로 되고, 포트도 엉뚱한 핀으로 설정된 분은 cydwr 탭에서 핀설정 다시 하시면 됩니다. 프로그램은 LED 출력이 2개인데, 실제 보드에는 LED가 1개뿐이라서, 1초마다 토글하는 출력에 LED를 연결했습니다.
댓글 없음:
댓글 쓰기