NuMaker-IIoT-NUC980 ????? EtherCAT ???
1???????????lg28870983
??????DIY???EtherCAT??????????????????????????????NUC980???????????????NUC980??RAM????????????????о????????????
?????????NUC980?????????????????????????ARM9?????linux????????????????????BSP????????????е?????EtherCAT?????????????linux??????????????MCU???????飬????????RTOS?????M3??M4??о????????FreeRTOS???????????RT-Thread??????????????NUC980??RT-Thread??BSP????????????????????????NUC980+RT-Thread???????
??????????и?DIY???????????????????
2??EtherCAT ???????????
EtherCAT?????????????????????????????????????????????????????????????????÷?????????ò????
???????????????????SOEM??IGH??????????????????????????????IGH????linux??????????SOME?????°汾??SOEM1.4???????????????汾??
3?????????
3.1 RT-Thread ????
??????????????·?????release4.1.0, ????????github????????Gitee???????????EtherCAT?????????Nuvoton??BSP????????????ο?????????????????
3.2 Some ???
????soem-1.4.0??????????????rt-thread????????????????????ο?
??some-1.4.0??????????????????SConscript?????????????????????????????????????
Some??????????????? osal.c??oshw.c??nicdrv.c??
osal.c ???????????????????????
oshw.c ??????????????????????С???????
nicdrv.c ??????????????????
Some????????????????????????????????rtk???????????????????????????????????
3.2.1 osal.c ???
????????????osal_usleep??osal_gettimeofday??????????
?????·???????????????????EtherCAT?????????Timer4???????????????????????????Timer5???????????????????????????Timer5??????Timer?????????????????????????????????? (??????????????)??osal_timer_init???????????????????EhterCAT?????????á?
3.2.2 oshw.c ???
??????????????
3.2.3 nicdrv.c ???
????????????????????緢???????????????????????net_send??net_recv??????????????????????????????????????emac??????????????ο???tcpdump?????????Э????м?????hook??????????????????????С?????????EtherCAT????????????????????á?
ecx_setupnic?????д???mutex?????????rt-thread????????????????????繳??
ecx_closenic?????????mutex??ж?????繳???
3.2.4 net_hook.c ???
??????EtherCAT???????????м????????λ??????????????????????????????????????????????????????????????????????????EtherCAT?????????????????????lwipЭ?????????????????????????÷???????????lwipЭ???????????????lwipЭ?????????
??????????????
3.2.5 some ???????????
???ù????slave_info????????????????????????soem EtherCATЭ?????????????????????????? soem_test + ??????ɡ?
??????????IS620N???????????????????????????
Slave:1
Name:IS620N
Output size: 96bits
Input size: 224bits
State: 4
Delay: 0[ns]
Has DC: 1
DCParentport:0
Activeports:1.0.0.0
Configured address: 1001
Man: 00100000 ID: 000c0108 Rev: 00010001
SM0 A:1000 L: 128 F:00010026 Type:1
SM1 A:1400 L: 128 F:00010022 Type:2
SM2 A:1800 L: 12 F:00010064 Type:3
SM3 A:1c00 L: 28 F:00010020 Type:4
FMMU0 Ls:00000000 Ll: 12 Lsb:0 Leb:7 Ps:1800 Psb:0 Ty:02 Act:01
FMMU1 Ls:0000000c Ll: 28 Lsb:0 Leb:7 Ps:1c00 Psb:0 Ty:01 Act:01
FMMUfunc 0:1 1:2 2:0 3:0
MBX length wr: 128 rd: 128 MBX protocols : 04
CoE details: 0d FoE details: 00 EoE details: 00 SoE details: 00
Ebus current: 0[mA]
only LRD/LWR:0
4????????????
???????????????????????????????????????????????????????????????CIA402????淶????????????????淶???????????
??????????????????????????????
a)???????? osal_timer_init
b)?????????ec_init
c)???????INIT?
d)?????????????is6??is620n??ec_config_init
e)DC????
f)???????????Pre-OP?
g)???ù???????TxPDO/RxPDO??????庯??process_data_config??
h)????FMMU ec_config_map
i)???????????Safe-OP?
j)????CSP??
k)???????????????1?Σ?????SLAVE
l)???????????OP?
m)?????????????????
??????????????????????????????????????????6040h????6??7??15???????????????????????λ??????????????
5?????
???????????????????????????????????????????EtherCAT???????????????????????ο???????????????????????????????SOEM????DC??????????????????????????????????????????????????????????????????????????
?????????????????????????????????????emac????????????????綶????
???????????ο?????????????uffs????????????????????????????????uffs??ramdisk??optparse??netutils????
????: https://pan.baidu.com/s/1uWbiUfzX1R061OJQ5LG6OQ?pwd=wdtt
?????: wdtt
SOEM?????PR #1260????????????????????????????????????????????????

????admin ?????????2023-03-04