|
NetBurner 3.5.7
PDF Version |
USB CDC NCM Device Class for Ethernet-over-USB. More...
#include <usbd_cdc_ncm.h>
Inherits nbrtos::USB::Device, and nbrtos::USB::Device.
Public Member Functions | |
| dCDC_NCM (nbrtos::USB::Ctlr *parent, const usb_dev_t *desc, const usb_cfg_t *cfg, const nbrtos::USB::StrDescTbl *strTbl) | |
| Constructor. | |
| void | SetMACAddress (const MACADR &mac) |
| Set the MAC address for this NCM interface. | |
| void | SetLinkSpeed (uint32_t speedMbps) |
| Set the link speed in Mbps. | |
| ncm_state_t | GetNcmState () const |
| Get the current NCM state. | |
| bool | IsDataReady () const |
| Check if NCM is ready for data transfer. | |
| dCDC_NCM (nbrtos::USB::Ctlr *parent, const usb_dev_t *desc, const usb_cfg_t *cfg, const nbrtos::USB::StrDescTbl *strTbl) | |
| Constructor. | |
| void | SetMACAddress (const MACADR &mac) |
| Set the MAC address for this NCM interface. | |
| void | SetLinkSpeed (uint32_t speedMbps) |
| Set the link speed in Mbps. | |
| ncm_state_t | GetNcmState () const |
| Get the current NCM state. | |
| bool | IsDataReady () const |
| Check if NCM is ready for data transfer. | |
| uint32_t | GetTxFramesOk () const |
| Get TX frames transmitted successfully. | |
| uint32_t | GetRxFramesOk () const |
| Get RX frames received successfully. | |
| uint32_t | GetTxFramesError () const |
| Get TX frame errors. | |
| uint32_t | GetRxFramesError () const |
| Get RX frame errors. | |
| uint32_t | GetRxNoBuffer () const |
| Get RX no buffer count. | |
| uint32_t | GetTxQueueOverflow () const |
| Get TX queue overflow count. | |
| int | GetTxQueueDepth () const |
| Get current TX queue depth. | |
| uint32_t | GetNtbMaxSize () const |
| Get max NTB size. | |
Protected Member Functions | |
| int | QueueRx () |
| Queue a receive operation on the bulk OUT endpoint. | |
| int | ParseNtb16 (uint8_t *ntb, uint32_t length) |
| Parse received NTB and extract datagrams. | |
| int | BuildNtb16 (uint8_t *destBuf, uint8_t *frameData, uint32_t frameLen) |
| Build NTB16 for transmission. | |
| int | SendNetworkConnectionNotification (bool connected) |
| Send NETWORK_CONNECTION notification. | |
| int | SendSpeedChangeNotification () |
| Send CONNECTION_SPEED_CHANGE notification. | |
| int | QueueRx () |
| Queue a receive operation on the bulk OUT endpoint. | |
| bool | TxQueueEnqueue (PoolPtr pp) |
| Add a frame to the TX queue. | |
| PoolPtr | TxQueueDequeue () |
| Remove a frame from the TX queue. | |
| bool | TxQueueEmpty () const |
| Check if TX queue is empty. | |
| bool | TxQueueFull () const |
| Check if TX queue is full. | |
| void | TxStartNextFrame () |
| Start transmitting the next frame from queue. | |
| int | ParseNtb16 (uint8_t *ntb, uint32_t length) |
| Parse received NTB and extract datagrams. | |
| int | BuildNtb16 (uint8_t *destBuf, uint8_t *frameData, uint32_t frameLen) |
| Build NTB16 for transmission. | |
| int | SendNetworkConnectionNotification (bool connected) |
| Send NETWORK_CONNECTION notification. | |
| int | SendSpeedChangeNotification () |
| Send CONNECTION_SPEED_CHANGE notification. | |
Friends | |
| class | NcmInterfaceBlock |
| void | UserMain (void *pd) |
| Application entry point. | |
| void | UserMain (void *pd) |
| Application entry point. | |
USB CDC NCM Device Class for Ethernet-over-USB.
This class implements a USB CDC NCM device that provides virtual network interface functionality. When connected to a Windows 10+ host, the device enumerates automatically with the native NCM driver, enabling Ethernet-like communication over USB.
|
protected |
Remove a frame from the TX queue.
|
protected |
Add a frame to the TX queue.
|
friend |
Application entry point.
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point to the example
UserMain
The main task
UserMain, the entry point of the example
Initializes networking and the web server, then checks if a second partition already exists. If not, prompts the user and creates one. Finally displays the file tree for partition 0.
Initializes the system, creates the handler task, configures the GPIO pins, and sets up the pin interrupt. Then enters a loop that periodically prints the transition count and current pin state.
| pd | Pointer to optional user data (unused) |
Initializes the NetBurner system, starts the web server, and enters the main application loop. The application performs the following:
Initialization Sequence:
Main Loop:
The web interface (index.html) independently polls /count.json every 20ms for real-time encoder display.
Console Output Format:
| pd | Pointer to optional parameter data (not used) |
UserMain - Entry point for NetBurner applications (not main())
| pd | Pointer to user data (typically unused) |
Initializes the NetBurner system, configures SEMC for external SRAM, runs comprehensive memory tests, and demonstrates various access patterns.
The application flow:
| pd | Unused parameter (required by NetBurner framework) |
Main entry point
Initializes the USB NCM interface and configures networking. The NCM interface appears as a standard Ethernet adapter on the host.
UserMain
Main entry point of program
UserMain is the entry point for NetBurner applications (not main()). This function initializes all system components and starts the main application loop.
Initialization sequence:
| pd | Pointer to task data (unused in this example) |
UserMain
Main entry point for example
UserMain Task
UserMain Task This is the first task to be executed and will create the UDP Reader Task.
UserMain This is the first task to be executed and will create the UDP Reader Task.
UserMain
Main entry point for the program
Initializes the network stack and starts the HTTP server to handle multipart form submissions. All form processing logic is in formcode.cpp.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
|
friend |
Application entry point.
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point to the example
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point to the example
UserMain
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point to the example
UserMain
The main task
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point to the example
UserMain
The main task
UserMain, the entry point of the example
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point to the example
UserMain
The main task
UserMain, the entry point of the example
Initializes networking and the web server, then checks if a second partition already exists. If not, prompts the user and creates one. Finally displays the file tree for partition 0.
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point to the example
UserMain
The main task
UserMain, the entry point of the example
Initializes networking and the web server, then checks if a second partition already exists. If not, prompts the user and creates one. Finally displays the file tree for partition 0.
Application entry point.
Initializes the system, creates the handler task, configures the GPIO pins, and sets up the pin interrupt. Then enters a loop that periodically prints the transition count and current pin state.
| pd | Pointer to optional user data (unused) |
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point to the example
UserMain
The main task
UserMain, the entry point of the example
Initializes networking and the web server, then checks if a second partition already exists. If not, prompts the user and creates one. Finally displays the file tree for partition 0.
Initializes the system, creates the handler task, configures the GPIO pins, and sets up the pin interrupt. Then enters a loop that periodically prints the transition count and current pin state.
| pd | Pointer to optional user data (unused) |
Application entry point.
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point to the example
UserMain
The main task
UserMain, the entry point of the example
Initializes networking and the web server, then checks if a second partition already exists. If not, prompts the user and creates one. Finally displays the file tree for partition 0.
Initializes the system, creates the handler task, configures the GPIO pins, and sets up the pin interrupt. Then enters a loop that periodically prints the transition count and current pin state.
| pd | Pointer to optional user data (unused) |
Application entry point.
Initializes the NetBurner system, starts the web server, and enters the main application loop. The application performs the following:
Initialization Sequence:
Main Loop:
The web interface (index.html) independently polls /count.json every 20ms for real-time encoder display.
Console Output Format:
| pd | Pointer to optional parameter data (not used) |
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point to the example
UserMain
The main task
UserMain, the entry point of the example
Initializes networking and the web server, then checks if a second partition already exists. If not, prompts the user and creates one. Finally displays the file tree for partition 0.
Initializes the system, creates the handler task, configures the GPIO pins, and sets up the pin interrupt. Then enters a loop that periodically prints the transition count and current pin state.
| pd | Pointer to optional user data (unused) |
Initializes the NetBurner system, starts the web server, and enters the main application loop. The application performs the following:
Initialization Sequence:
Main Loop:
The web interface (index.html) independently polls /count.json every 20ms for real-time encoder display.
Console Output Format:
| pd | Pointer to optional parameter data (not used) |
UserMain - Entry point for NetBurner applications (not main())
| pd | Pointer to user data (typically unused) |
Application entry point.
Initializes the NetBurner system, configures SEMC for external SRAM, runs comprehensive memory tests, and demonstrates various access patterns.
The application flow:
| pd | Unused parameter (required by NetBurner framework) |
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point to the example
UserMain
The main task
UserMain, the entry point of the example
Initializes networking and the web server, then checks if a second partition already exists. If not, prompts the user and creates one. Finally displays the file tree for partition 0.
Initializes the system, creates the handler task, configures the GPIO pins, and sets up the pin interrupt. Then enters a loop that periodically prints the transition count and current pin state.
| pd | Pointer to optional user data (unused) |
Initializes the NetBurner system, starts the web server, and enters the main application loop. The application performs the following:
Initialization Sequence:
Main Loop:
The web interface (index.html) independently polls /count.json every 20ms for real-time encoder display.
Console Output Format:
| pd | Pointer to optional parameter data (not used) |
UserMain - Entry point for NetBurner applications (not main())
| pd | Pointer to user data (typically unused) |
Initializes the NetBurner system, configures SEMC for external SRAM, runs comprehensive memory tests, and demonstrates various access patterns.
The application flow:
| pd | Unused parameter (required by NetBurner framework) |
Main entry point
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point to the example
UserMain
The main task
UserMain, the entry point of the example
Initializes networking and the web server, then checks if a second partition already exists. If not, prompts the user and creates one. Finally displays the file tree for partition 0.
Initializes the system, creates the handler task, configures the GPIO pins, and sets up the pin interrupt. Then enters a loop that periodically prints the transition count and current pin state.
| pd | Pointer to optional user data (unused) |
Initializes the NetBurner system, starts the web server, and enters the main application loop. The application performs the following:
Initialization Sequence:
Main Loop:
The web interface (index.html) independently polls /count.json every 20ms for real-time encoder display.
Console Output Format:
| pd | Pointer to optional parameter data (not used) |
UserMain - Entry point for NetBurner applications (not main())
| pd | Pointer to user data (typically unused) |
Initializes the NetBurner system, configures SEMC for external SRAM, runs comprehensive memory tests, and demonstrates various access patterns.
The application flow:
| pd | Unused parameter (required by NetBurner framework) |
Main entry point
Application entry point.
Initializes the USB NCM interface and configures networking. The NCM interface appears as a standard Ethernet adapter on the host.
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point to the example
UserMain
The main task
UserMain, the entry point of the example
Initializes networking and the web server, then checks if a second partition already exists. If not, prompts the user and creates one. Finally displays the file tree for partition 0.
Initializes the system, creates the handler task, configures the GPIO pins, and sets up the pin interrupt. Then enters a loop that periodically prints the transition count and current pin state.
| pd | Pointer to optional user data (unused) |
Initializes the NetBurner system, starts the web server, and enters the main application loop. The application performs the following:
Initialization Sequence:
Main Loop:
The web interface (index.html) independently polls /count.json every 20ms for real-time encoder display.
Console Output Format:
| pd | Pointer to optional parameter data (not used) |
UserMain - Entry point for NetBurner applications (not main())
| pd | Pointer to user data (typically unused) |
Initializes the NetBurner system, configures SEMC for external SRAM, runs comprehensive memory tests, and demonstrates various access patterns.
The application flow:
| pd | Unused parameter (required by NetBurner framework) |
Main entry point
Initializes the USB NCM interface and configures networking. The NCM interface appears as a standard Ethernet adapter on the host.
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point to the example
UserMain
The main task
UserMain, the entry point of the example
Initializes networking and the web server, then checks if a second partition already exists. If not, prompts the user and creates one. Finally displays the file tree for partition 0.
Initializes the system, creates the handler task, configures the GPIO pins, and sets up the pin interrupt. Then enters a loop that periodically prints the transition count and current pin state.
| pd | Pointer to optional user data (unused) |
Initializes the NetBurner system, starts the web server, and enters the main application loop. The application performs the following:
Initialization Sequence:
Main Loop:
The web interface (index.html) independently polls /count.json every 20ms for real-time encoder display.
Console Output Format:
| pd | Pointer to optional parameter data (not used) |
UserMain - Entry point for NetBurner applications (not main())
| pd | Pointer to user data (typically unused) |
Initializes the NetBurner system, configures SEMC for external SRAM, runs comprehensive memory tests, and demonstrates various access patterns.
The application flow:
| pd | Unused parameter (required by NetBurner framework) |
Main entry point
Initializes the USB NCM interface and configures networking. The NCM interface appears as a standard Ethernet adapter on the host.
UserMain
Main entry point of program
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point to the example
UserMain
The main task
UserMain, the entry point of the example
Initializes networking and the web server, then checks if a second partition already exists. If not, prompts the user and creates one. Finally displays the file tree for partition 0.
Initializes the system, creates the handler task, configures the GPIO pins, and sets up the pin interrupt. Then enters a loop that periodically prints the transition count and current pin state.
| pd | Pointer to optional user data (unused) |
Initializes the NetBurner system, starts the web server, and enters the main application loop. The application performs the following:
Initialization Sequence:
Main Loop:
The web interface (index.html) independently polls /count.json every 20ms for real-time encoder display.
Console Output Format:
| pd | Pointer to optional parameter data (not used) |
UserMain - Entry point for NetBurner applications (not main())
| pd | Pointer to user data (typically unused) |
Initializes the NetBurner system, configures SEMC for external SRAM, runs comprehensive memory tests, and demonstrates various access patterns.
The application flow:
| pd | Unused parameter (required by NetBurner framework) |
Main entry point
Initializes the USB NCM interface and configures networking. The NCM interface appears as a standard Ethernet adapter on the host.
UserMain
Main entry point of program
Application entry point.
UserMain is the entry point for NetBurner applications (not main()). This function initializes all system components and starts the main application loop.
Initialization sequence:
| pd | Pointer to task data (unused in this example) |
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point to the example
UserMain
The main task
UserMain, the entry point of the example
Initializes networking and the web server, then checks if a second partition already exists. If not, prompts the user and creates one. Finally displays the file tree for partition 0.
Initializes the system, creates the handler task, configures the GPIO pins, and sets up the pin interrupt. Then enters a loop that periodically prints the transition count and current pin state.
| pd | Pointer to optional user data (unused) |
Initializes the NetBurner system, starts the web server, and enters the main application loop. The application performs the following:
Initialization Sequence:
Main Loop:
The web interface (index.html) independently polls /count.json every 20ms for real-time encoder display.
Console Output Format:
| pd | Pointer to optional parameter data (not used) |
UserMain - Entry point for NetBurner applications (not main())
| pd | Pointer to user data (typically unused) |
Initializes the NetBurner system, configures SEMC for external SRAM, runs comprehensive memory tests, and demonstrates various access patterns.
The application flow:
| pd | Unused parameter (required by NetBurner framework) |
Main entry point
Initializes the USB NCM interface and configures networking. The NCM interface appears as a standard Ethernet adapter on the host.
UserMain
Main entry point of program
UserMain is the entry point for NetBurner applications (not main()). This function initializes all system components and starts the main application loop.
Initialization sequence:
| pd | Pointer to task data (unused in this example) |
UserMain
Main entry point for example
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point to the example
UserMain
The main task
UserMain, the entry point of the example
Initializes networking and the web server, then checks if a second partition already exists. If not, prompts the user and creates one. Finally displays the file tree for partition 0.
Initializes the system, creates the handler task, configures the GPIO pins, and sets up the pin interrupt. Then enters a loop that periodically prints the transition count and current pin state.
| pd | Pointer to optional user data (unused) |
Initializes the NetBurner system, starts the web server, and enters the main application loop. The application performs the following:
Initialization Sequence:
Main Loop:
The web interface (index.html) independently polls /count.json every 20ms for real-time encoder display.
Console Output Format:
| pd | Pointer to optional parameter data (not used) |
UserMain - Entry point for NetBurner applications (not main())
| pd | Pointer to user data (typically unused) |
Initializes the NetBurner system, configures SEMC for external SRAM, runs comprehensive memory tests, and demonstrates various access patterns.
The application flow:
| pd | Unused parameter (required by NetBurner framework) |
Main entry point
Initializes the USB NCM interface and configures networking. The NCM interface appears as a standard Ethernet adapter on the host.
UserMain
Main entry point of program
UserMain is the entry point for NetBurner applications (not main()). This function initializes all system components and starts the main application loop.
Initialization sequence:
| pd | Pointer to task data (unused in this example) |
UserMain
Main entry point for example
Application entry point.
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point to the example
UserMain
The main task
UserMain, the entry point of the example
Initializes networking and the web server, then checks if a second partition already exists. If not, prompts the user and creates one. Finally displays the file tree for partition 0.
Initializes the system, creates the handler task, configures the GPIO pins, and sets up the pin interrupt. Then enters a loop that periodically prints the transition count and current pin state.
| pd | Pointer to optional user data (unused) |
Initializes the NetBurner system, starts the web server, and enters the main application loop. The application performs the following:
Initialization Sequence:
Main Loop:
The web interface (index.html) independently polls /count.json every 20ms for real-time encoder display.
Console Output Format:
| pd | Pointer to optional parameter data (not used) |
UserMain - Entry point for NetBurner applications (not main())
| pd | Pointer to user data (typically unused) |
Initializes the NetBurner system, configures SEMC for external SRAM, runs comprehensive memory tests, and demonstrates various access patterns.
The application flow:
| pd | Unused parameter (required by NetBurner framework) |
Main entry point
Initializes the USB NCM interface and configures networking. The NCM interface appears as a standard Ethernet adapter on the host.
UserMain
Main entry point of program
UserMain is the entry point for NetBurner applications (not main()). This function initializes all system components and starts the main application loop.
Initialization sequence:
| pd | Pointer to task data (unused in this example) |
UserMain
Main entry point for example
UserMain Task
UserMain Task This is the first task to be executed and will create the UDP Reader Task.
UserMain This is the first task to be executed and will create the UDP Reader Task.
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point to the example
UserMain
The main task
UserMain, the entry point of the example
Initializes networking and the web server, then checks if a second partition already exists. If not, prompts the user and creates one. Finally displays the file tree for partition 0.
Initializes the system, creates the handler task, configures the GPIO pins, and sets up the pin interrupt. Then enters a loop that periodically prints the transition count and current pin state.
| pd | Pointer to optional user data (unused) |
Initializes the NetBurner system, starts the web server, and enters the main application loop. The application performs the following:
Initialization Sequence:
Main Loop:
The web interface (index.html) independently polls /count.json every 20ms for real-time encoder display.
Console Output Format:
| pd | Pointer to optional parameter data (not used) |
UserMain - Entry point for NetBurner applications (not main())
| pd | Pointer to user data (typically unused) |
Initializes the NetBurner system, configures SEMC for external SRAM, runs comprehensive memory tests, and demonstrates various access patterns.
The application flow:
| pd | Unused parameter (required by NetBurner framework) |
Main entry point
Initializes the USB NCM interface and configures networking. The NCM interface appears as a standard Ethernet adapter on the host.
UserMain
Main entry point of program
UserMain is the entry point for NetBurner applications (not main()). This function initializes all system components and starts the main application loop.
Initialization sequence:
| pd | Pointer to task data (unused in this example) |
UserMain
Main entry point for example
UserMain Task
UserMain Task This is the first task to be executed and will create the UDP Reader Task.
UserMain This is the first task to be executed and will create the UDP Reader Task.
UserMain
Main entry point for the program
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point to the example
UserMain
The main task
UserMain, the entry point of the example
Initializes networking and the web server, then checks if a second partition already exists. If not, prompts the user and creates one. Finally displays the file tree for partition 0.
Initializes the system, creates the handler task, configures the GPIO pins, and sets up the pin interrupt. Then enters a loop that periodically prints the transition count and current pin state.
| pd | Pointer to optional user data (unused) |
Initializes the NetBurner system, starts the web server, and enters the main application loop. The application performs the following:
Initialization Sequence:
Main Loop:
The web interface (index.html) independently polls /count.json every 20ms for real-time encoder display.
Console Output Format:
| pd | Pointer to optional parameter data (not used) |
UserMain - Entry point for NetBurner applications (not main())
| pd | Pointer to user data (typically unused) |
Initializes the NetBurner system, configures SEMC for external SRAM, runs comprehensive memory tests, and demonstrates various access patterns.
The application flow:
| pd | Unused parameter (required by NetBurner framework) |
Main entry point
Initializes the USB NCM interface and configures networking. The NCM interface appears as a standard Ethernet adapter on the host.
UserMain
Main entry point of program
UserMain is the entry point for NetBurner applications (not main()). This function initializes all system components and starts the main application loop.
Initialization sequence:
| pd | Pointer to task data (unused in this example) |
UserMain
Main entry point for example
UserMain Task
UserMain Task This is the first task to be executed and will create the UDP Reader Task.
UserMain This is the first task to be executed and will create the UDP Reader Task.
UserMain
Main entry point for the program
Application entry point.
Initializes the network stack and starts the HTTP server to handle multipart form submissions. All form processing logic is in formcode.cpp.
UserMain
Main entry point for the example
UserMain
Main entry point of the example
UserMain
Main entry point to the example
UserMain
The main task
UserMain, the entry point of the example
Initializes networking and the web server, then checks if a second partition already exists. If not, prompts the user and creates one. Finally displays the file tree for partition 0.
Initializes the system, creates the handler task, configures the GPIO pins, and sets up the pin interrupt. Then enters a loop that periodically prints the transition count and current pin state.
| pd | Pointer to optional user data (unused) |
Initializes the NetBurner system, starts the web server, and enters the main application loop. The application performs the following:
Initialization Sequence:
Main Loop:
The web interface (index.html) independently polls /count.json every 20ms for real-time encoder display.
Console Output Format:
| pd | Pointer to optional parameter data (not used) |
UserMain - Entry point for NetBurner applications (not main())
| pd | Pointer to user data (typically unused) |
Initializes the NetBurner system, configures SEMC for external SRAM, runs comprehensive memory tests, and demonstrates various access patterns.
The application flow:
| pd | Unused parameter (required by NetBurner framework) |
Main entry point
Initializes the USB NCM interface and configures networking. The NCM interface appears as a standard Ethernet adapter on the host.
UserMain
Main entry point of program
UserMain is the entry point for NetBurner applications (not main()). This function initializes all system components and starts the main application loop.
Initialization sequence:
| pd | Pointer to task data (unused in this example) |
UserMain
Main entry point for example
UserMain Task
UserMain Task This is the first task to be executed and will create the UDP Reader Task.
UserMain This is the first task to be executed and will create the UDP Reader Task.
UserMain
Main entry point for the program
Initializes the network stack and starts the HTTP server to handle multipart form submissions. All form processing logic is in formcode.cpp.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.
Create the pin change handler task
Parameters:
Higher priority ensures the task runs promptly when semaphore is posted.
Register the pin interrupt handler
Parameters:
After this call, any edge transition on Pin 30 will trigger NotifyFunc to be called in interrupt context.
The SEMC_CLK_ROOT clock configuration options are: SEMC alternative clock select 0 = PLL2 PFD2 will be selected as alternative clock for SEMC root clock (396MHz) 1 = PLL3 PFD1 will be selected as alternative clock for SEMC root clock (665.62MHz) NOTE: SEMC_CLK_ROOT can be selected as a source for FLEXSPI_CLK_ROOT
SEMC clock source select 0 = Periph_clk output will be used as SEMC clock root 1 = SEMC alternative clock will be used as SEMC clock root
Set up a file descriptor (FD) set so we can select() on the serial ports. Once configured, the select() function will block until activity is detected on a FD (a serial port in this example), or a timeout occurs (set to 1 second here). If a timeout does occur, we simply go back to the select() function and wait for more activity. The "write" and "error" FD sets of the select() function are not used and set to nullptr; only read operations caused by the items in read_fds will cause select() to exit. A timeout value of 0 would disable the timeout, and select() would wait forever.
Detailed description of how select() works: The select() function operates on a bit mapped field of 64 bits. In this example, the bit field is read_fds. When select() is called, read_fds represents a MASK of which file descriptors to check. AFTER select() exits, read_fds contains the STATUS of which file descriptors have pending events. This means that read_fds must be reinitialized to contain MASK information each time before select() is called. FD_ZERO, FD_SET, and FD_ISSET are macros that execute very fast.