Z Stack分析 main函式

2021-07-11 02:57:47 字數 1037 閱讀 3583

程式的執行都是從main函式開始,也就是說我們的程式的入口都是main函式(注:對於嵌入式開發人員來說main函式也是普通的函式,也是被呼叫的,那麼也可以被改為其他的函式名稱,這需要你自己編寫啟動**),對於z-stack協議棧來說main函式在zmain.c(z-stack\projects\zstack\zmain\ti2530db)裡面定義,下面我們首先分析一下main函式實現的功能,然後我會**和詳細分析裡面包含的每乙個函式的作用。

下面我們拷貝一下z-stack裡面main函式的**來分析一下,**如下:

int main( void )

osal_int_disable( ints_all )-->關閉所有中斷

hal_board_init()-->硬體板子的初始化,比如led的初始化

zmain_vdd_check()-->檢測電壓,確保電壓能使cc2530執行

initboard( ob_cold )-->板子i/o的初始化

haldriverinit();-->硬體驅動的初始化

osal_nv_init( null )-->對nv系統的初始化

zmacinit()-->mac的初始化

zmain_ext_addr()-->擴充套件位址的確定

zginit()-->初始化nv條目

afinit()-->af層的初始化,在禁止nonwk的時候需要初始化af層

osal_init_system()-->初始化作業系統

osal_int_enable( ints_all )-->開中斷

initboard( ob_ready )-->板級最終初始化

zmain_dev_info()-->裝置資訊的顯示

zmain_lcd_init()-->如果定義了lcd,那麼執行lcd初始化

watchdogenable( wdtimx )-->如果定義了看門狗,那麼執行使能看門狗函式

osal_start_system()-->系統執行的入口,注意正常情況是不會執行到此函式的下一句,也就是return語句的,因為進入此函式以後會一直在裡面迴圈執行任務,並不會跳出次迴圈。

arm彙編 main函式分析

arm 彙編分析1.主要是為了搞清楚原子操作的實現原理。2.在 c語言環境下 變數賦值應該是可以被打斷。3.還有是在c語言中變數賦值操作對應的彙編 4.原子操作的主要流程 read modify write rwm 那麼接下來先看一下c 語言 include intfunc intmain 反彙編之...

hostapd之main 函式分析

hostapd 的main函式位於hostapd hostapd.c中。函式開始是日誌相關以及對命令列引數選項的處理。緊接著進入hostapd初始化階段,hostapd包括以下四個步驟。初始化完成之後,進入eloop run 通過select函式判斷是否有新的事件,並呼叫相應處理函式進行處理。最後階...

main函式詳解

c的設計原則是把函式作為程式的構成模組。main 函式稱之為主函式,乙個c程式總是從main 函式開始執行的。在最新的 c99 標準中,只有以下兩種定義方式是正確的 參閱iso iec 9899 1999 e 5.1.2.2.1 program startup int main void 無引數形式...