一个线程,强行结束另外一个线程,并将其挂起:
static void SuspendTask(TX_THREAD *thread) { UINT status = 0; UINT state; status = tx_thread_terminate(thread); if(status != TX_SUCCESS) return ; do { tx_thread_sleep(1); status = tx_thread_info_get(thread, NULL, &state, NULL, NULL, NULL, NULL, NULL, NULL); if (status != TX_SUCCESS) { xp_log("can not get clean thread status (0x%02x) ", status); break; } } while (!(state & (TX_COMPLETED | TX_TERMINATED))); tx_thread_reset(thread); }
启动
static void StartRawTask(void) { UINT status = 0; UINT state; status = tx_thread_info_get(&rawThread, NULL, &state, NULL, NULL, NULL, NULL, NULL, NULL); if(status == TX_SUCCESS) { if(state == TX_SUSPENDED) tx_thread_resume(&rawThread); } else tx_thread_create(&rawThread, (CHAR *) "raw thread", RawThreadCallback, (ULONG)(&MaterialBoxTempT3), &raw_stack, COMMON_THREAD_STACK, 6, 6, 0, TX_AUTO_START); }
nx_api.h
nx_ip_address_get
nx_packet_pool_create
nx_packet_pool_info_get
nx_tcp_socket_bytes_available
nx_tcp_socket_info_get
nx_tcp_socket_mss_get
系统重启
NVIC_SystemReset
static ULONG _get_time(void) { ULONG seconds, milliseconds; UINT status; /* Get local time as set by SNTP client */ status = nx_sntp_client_get_local_time(&g_sntp_client, &seconds, &milliseconds, NX_NULL); if (status != NX_SUCCESS) return 0; /* Convert to Unix epoch */ seconds -= UNIX_TO_NTP_EPOCH_SECS; return seconds; }
TCP/UDP
nx_tcp_client_socket_bind
nx_tcp_server_socket_accept
nx_tcp_server_socket_listen
nx_tcp_socket_create
/* APIs for packet pool. */
/* APIs for packet pool. */ #define nx_packet_allocate _nxe_packet_allocate #define nx_packet_copy _nxe_packet_copy #define nx_packet_data_append _nxe_packet_data_append #define nx_packet_data_extract_offset _nxe_packet_data_extract_offset #define nx_packet_data_retrieve _nxe_packet_data_retrieve #define nx_packet_length_get _nxe_packet_length_get #define nx_packet_pool_create(p, n, l, m, s) _nxe_packet_pool_create(p, n, l, m, s, sizeof(NX_PACKET_POOL)) #define nx_packet_pool_delete _nxe_packet_pool_delete #define nx_packet_pool_info_get _nxe_packet_pool_info_get #define nx_packet_pool_low_watermark_set _nxe_packet_pool_low_watermark_set #define nx_packet_release(p) _nxe_packet_release(&p) #define nx_packet_transmit_release(p) _nxe_packet_transmit_release(&p)