前面已经介绍过,主栈代码位于master/ 目录下,IgH主栈编出来的是ec_master.ko,所以是以KO的形式加载的,驱动的入口函数在module.c中,声明了驱动入口函数ec_init_module
上面是加载驱动时可以传入的一些命令行参数
IgH支持多主站和双网口设备冗余,目前我们只讨论单主站和单网卡情况
主栈初始化首先创建了一个字符设备,作用是IgH上层应用程序是通过ioctl接口来调用主栈驱动程序接口的,创建/dev/EtherCAT0设备,上层应用程序可以通过这个设备调用驱动接口,然后是调用主栈初始化功能接口。
我们这里只介绍一些重要功能和参数。
IgH主栈有三种状态,在启动到加载网络驱动之前处于EC_ORPHANED状态
加载以太网驱动后会启动Idle线程,此时处于EC_IDLE状态
当用户启动应用程序请求主栈时,此时处于EC_OPERATION状态
初始化从站状态机
初始化过程中非常重要的是初始化主栈和从站的状态机,主栈中是以规划好的各个状态运行的
当连接网络时,主栈启动idle线程,主栈就从这个初始化状态开始运行
主栈初始化完成后,就等待加载网络驱动,网络驱动加载后才正式启动了主栈各部分功能
下一篇介绍Idle线程启动和运行流程