NetDev_Init()
The first function within the wireless API is the device driver initialization/Init()
function. This function is called by NetIF_Add()
exactly once for each specific network device added by the application. If multiple instances of the same network device are present on the development board, then this function is called for each instance of the device. However, applications should not try to add the same specific device more than once. If a network device fails to initialize, we recommend debugging to find and correct the cause of failure.
Note: This function relies heavily on the implementation of several network device board support package (BSP) functions. See Chapter 6, “Network Board Support Package” and Appendix B, “Device Driver BSP Functions” for more information on network device BSP functions.
Files
Every device driver’s net_dev.c
Prototype
Note that since every device driver’s Init()
function is accessed only by function pointer via the device driver’s API structure, it doesn’t need to be globally available and should therefore be declared as ‘static
’.
Arguments
p_if
Pointer to the interface to initialize a network device.
p_err
Pointer to variable that will receive the return error code from this function.
Returned Value
None.
Required Configuration
None.
Notes / Warnings
The Init()
function generally performs the following operations, however, depending on the device being initialized, functionality may need to be added or removed:
CfgGPIO()
, implemented in net_bsp.c
(see section A-3-2).CfgIntCtrl()
, implemented in net_bsp.c
(see section B-3-4).p_err
to NET_DEV_ERR_NONE
if initialization proceeded as expected. Otherwise, set p_err
to an appropriate network device error code.