最終更新:2018-05-25 (金) 18:21:03 (2176d)
EZ-USB FX3/ファームウェア
Top / EZ-USB FX3 / ファームウェア
ソースコード
- The SDK package includes sources for most of the FX3 firmware libraries. The only exceptions are:
- 1. The ThreadX RTOS source. The ThreadX license terms only allow Cypress to provide the RTOS in a pre-compiled library form; and not in source form.
- 2. Sources for a small set of functions related to device initialization and identification. These functions deal with Cypress’ proprietary information and are provided in pre-compiled library form only. This does not include any functionality that comes into play once the device has been initialized.
- 3. Sources for controlling the Aptina and OmniVision sensors that are used in the CX3 firmware examples. This is not provided because an NDA with the sensor vendor is required to access this information. Please contact the sensor vendor to complete the NDA process and then request Cypress for the corresponding firmware sources.
処理
CPUの初期化
ブートロムの実行 (0xFFFF0000)
- ファームウェアをメモリに読み込む
CyU3PFirmwareEntry - エントリポイント (0x40003000)
- BSSセグメントを初期化してmainを呼ぶ
main - CPUとかの設定、OSの起動
- (CyU3PMemEnableChecks?)
- (CyU3PBufEnableChecks?)
- CyU3PDeviceInit - This function initializes the device. (クロックの設定)
- CyU3PDeviceCacheControl
- CyU3PDeviceConfigureIOMatrix?
- CyU3PKernelEntry()->tx_application_define(ThreadXのコールバック)->CyU3PApplicationDefine->CyU3PSysThreadEntry(ライブラリの内部関数)->CyFxApplicationDefineがそのうち呼ばれる
CyFxApplicationDefine
- CyU3PEventCreate?
- CyU3PMemAlloc?
- CyU3PThreadCreate(メインスレッドの関数)
メインスレッド (AppThread_Entry)
- CyFxDebugInit?
- CyU3PUartInit?
- CyU3PUartSetConfig
- CyU3PUartTxSetBlockXfer?
- CyU3PDebugInit
- CyU3PDebugPreamble
- アプリの初期化 (CyFxXXXInit)
- CyU3PUsbStart
- CyU3PUsbRegisterSetupCallback
- CyU3PUsbRegisterEventCallback
- CyU3PUsbRegisterLPMRequestCallback?
- CyU3PUsbSetDesc
- 無限ループ
- CyU3PEventGet?とか