---
# System prepended metadata

title: ET9300 study
tags: [motor_drive, EtherCAT]

---

# goal
* known structure
* easy porting

# structure

```mermaid
graph TD;

subgraph application
bootloader[bootloaderappl]
cia402[cia402appl]
el9800[el9800appl]
sample[sampleappl]
test[testappl]
end

%%---------------
ecat[ecatappl]
coe[coeappl]
%%user application interface
applinterface[applinterface] 
%%----------------------need infrastructure-------------------------

ecatslv[ecatslv]

subgraph hardware
%% ## hardware
XXXHW[XXX-HW]
el9800hw[el9800hw]
end

%%-----------------------link------------------------
bootloader-->ecat
cia402-->ecat
el9800-->ecat
sample-->ecat
test-->ecat
%% ## bydirection
%%ecat-->cia402;
%%ecat-->el9800;
%%ecat-->sample;


%%------------------
ecat-->ecatslv
ecat-->coe
ecat--> applinterface

ecat-->el9800hw;
ecat-->XXXHW;
ecatslv-->XXXHW

```

hardware 就放 `HW_Init` 這類 hardware 開頭的function。depend on implement e.g. communication 就有SPI。

application 的function 都會以 `APPL_XXX`開頭，`APPL_Application`, `APPL_StartMailboxHandler` ...

> MCI_HW 指 microcontroller interface(parallel)，SPI_HW 在comment 有，應該是就被改成 EL9800_HW

要porting ，基本就是這兩個部份。特別是hardware寫 硬體，application 寫自己的東西。





