RTK switch的SDK 初始化启动流程分析

本文详细介绍了RTK系统的初始化过程,包括HAL层初始化、DAL层初始化等关键步骤,并深入探讨了mac_probe、phy_probe等函数的功能及其实现原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最初接口
rtk_init:
hal_init
dal_mgmt_initDevice

hal初始化
hal_init:
/系统初始化,识别phy driver/
| hal_init_sys
| | osal_sem_mutex_create(Phy_sem,Miim_sem,Sds_sem,Tbl_sem)
| | phy_identify_init
| | | _phy_identify_phyctrl_register (supported_int_phys,supported_phys)
| | dal_mgmt_init
| dal_mgmt_mapper_clear
| hal_chipInfo_clear
/获取mac并初始化/
| mac_probe
| | hal_find_device
supported_devices rt_device_t
chip_id,rev_id,family_id,port_info,capacityInfo(各项表容量),macPPInfo,macPPInfo
| | hwp_defaultProfilePort_build
| | hwp_parsedInfo_buildup
| | hal_find_driver
rt_major_driver_table rt_driver_s
type,driver_id,driver_rev_id,reg_list,table_list,portMask_list,macDrv,
reg_idx_max,regField_idx_max,table_idx_max,vendor_id
macDrv = rt_macdrv_t ,init,miim,table,port,mac_serdes,smi,miim_portSmi
| mac_init
| | fMdrv_init
/获取phy初始化/
| phy_probe
| phy_attach_hook_driver
| phy_enable_set
| | fPhydrv_enable_set
| chip_construct
| phy_init

dal层初始化,主要为钩子函数

dal_mgmt_initDevice:
| hal_ctrlInfo_get
| dal_mgmt_mapper_init
| | dal_mgmt_mapper_allocate
| | dal_mgmt_mapper_hook
| | | dal_phyMapper_init
指向hal层初始化获取到的phy driver
| | | dal_macMapper_init

| RT_MAPPER(unit)->_init(unit)
| dal_linkMon_devInit

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值