OSAL系統相關問題

2021-08-03 20:07:09 字數 1654 閱讀 9505

osal中斷操作:

1、 允許中斷

byte osal_int_enable( byte interrupt_id )

-- interrupt_id:中斷標示符

2、禁止中斷

byte osal_int_disable( byte interrupt_id )

-- interrupt_id:中斷標示符

3、暫停中斷

hal_enter_critical_section(x)

4、重新啟用中斷

hal_exit_critical_section(x)

osal記憶體操作:

1、分配記憶體

void *osal_mem_alloc( uint16 size )

-- size:分配緩衝區的大小

2、釋放記憶體

void osal_mem_free( void *ptr )

-- ptr:指向釋放的緩衝區

osal訊息傳遞:

1、分配資訊緩衝區

byte * osal_msg_allocate( uint16 len )

-- len:資訊的長度

2、傳送資訊

byte osal_msg_send( byte destination_task, byte

*msg_ptr )

-- destination_task:接收資訊任務的標示符

-- msg_ptr:訊息指標

3、接收資訊

byte *osal_msg_receive( byte task_id )

-- task_id:接收資訊的任務id

4、釋放訊息緩衝區

byte osal_msg_deallocate( byte *msg_ptr )

-- msg_ptr:訊息指標

osal任務管理

1、任務初始化

byte osal_init_system( void )

--要建立的任務列表

2、任務開始

void osal_start_system( void )

--系統任務的主迴圈函式

3、獲取活動任務id

byte osal_self( void )

--中斷服務子程式中呼叫將會發生錯誤

4、事件控制代碼的函式原型

(*ptaskeventhandlerfn)( unsigned char task_id, unsigned short event )

osal定時器:

1、啟動定時器

byte osal_start_timerex( byte taskid, uint16 event_id, uint16 timeout_value )

-- taskid:定時器終止時事件任務的任務id

-- event_id:使用者定義的事件,時間終止時通知這個事件

--定時器設定前的時間量

2、停止定時器

byte osal_stop_timerex( byte task_id, uint16 event_id )

-- task_id:事件任務的任務id

-- event_id:使用者自定義事件

3、讀取系統時鐘

uint32 osal_getsystemclock( void )

--用來讀取系統時鐘(毫秒級)

OSAL作業系統抽象層

osal,operating system abstraction layer,即作業系統抽象層 osal是一種基於任務事件驅動的輪詢式作業系統 osal作業系統抽象層 main函式入口 osal init system osalinittasks osal start system osal ru...

Ubuntu系統相關問題

今天在用apt get install安裝文章中提到的一些依賴項時,發現老是出現 cannot initiate the connection to us.archive.ubuntu.com 80 2001 67c 1562 19 connect 101 network is unreachabl...

Android Wi Fi 系統睡眠相關問題解釋

1.什麼是手機睡眠 深度睡眠 在程式上有什麼表現?1 主cpu是跑android系統 2 modem cpu跑 協議 3 wcnss cpu跑我們wifi協議。手機的睡眠,指的就是主cpu停止執行指令進行手機省電。所以手機睡眠的時候,主cpu是不工作的,在程式上的表現就是android系統的任何程式...