BLE學(xué)習(xí)應(yīng)用筆記整理_第1頁
BLE學(xué)習(xí)應(yīng)用筆記整理_第2頁
BLE學(xué)習(xí)應(yīng)用筆記整理_第3頁
BLE學(xué)習(xí)應(yīng)用筆記整理_第4頁
BLE學(xué)習(xí)應(yīng)用筆記整理_第5頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、ble學(xué)習(xí)應(yīng)用筆記1osal 學(xué)習(xí)筆記1-osal.c * fn osal_strlen 計算字符串的長度。字符串必須空結(jié)尾。 * fn osal_memcpy 一般內(nèi)存復(fù)制 * fn osal_revmemcpy /一般的顛倒內(nèi)存復(fù)制。從資源緩存的最后開始,通過使用資源地址的指針移動len字節(jié)的,然后指針自減。 * fn osal_memdup /分配一個緩存(和osal_mem_alloc()),并復(fù)制這個資源緩存到剛分配好的控件. * fn osal_memcmp 一般內(nèi)存比較 * fn osal_memset 設(shè)置內(nèi)存緩存值 * fn osal_rand 產(chǎn)生隨機數(shù) * fn osal

2、_msg_allocate 動態(tài)分配一個osal消息緩存 * fn osal_msg_deallocate 釋放一個osal消息緩存(接收任務(wù)調(diào)用) * fn osal_msg_send 為某個任務(wù)發(fā)送一個osal消息 * fn osal_msg_receive 檢索接收命令消息。 * fn osal_msg_find 發(fā)現(xiàn) 在一個osal消息匹配任務(wù)id和事件參數(shù)。 * fn osal_msg_extract * /從osal隊列中間 提取和移除 一個osal消息 * fn osal_set_event 為一個任務(wù)設(shè)置一個 osal 事件 * fn osal_clear_event 清除一個

3、任務(wù)的事件標(biāo)志。 * fn osal_init_system osal 初始化,必須在主函數(shù)中被調(diào)用 * fn osal_start_system 開始運行osal 主循環(huán) * fn osal_run_system 現(xiàn)至少一個等待事件的第一個任務(wù)。2-osal_bufmgr.c * fn osal_bm_alloc 分配器函數(shù)的實現(xiàn) * fn osal_bm_free 取消分配器函數(shù) 的實現(xiàn) * fn osal_bm_adjust_header 調(diào)整header * fn osal_bm_adjust_tail 調(diào)整tail3-osal_cbtimer.c * fn osal_cbtimeri

4、nit 初始化函數(shù) * fn osal_cbtimerprocessevent/回調(diào) 定時器 任務(wù)事件處理函數(shù) * fn osal_cbtimerstart/當(dāng)定時器到期,注冊調(diào)用函數(shù)將被調(diào)用。 * fn osal_cbtimerupdate更新一個已經(jīng)啟動的 消息定時器 * fn osal_cbtimerstop/停止一個已經(jīng)啟動的定時器。4-osal_clockble.c * fn osaltimeupdate 更新 osal時間和定時器, * fn osalclockupdate /用 運行ms 更新osal時間表, * fn osal_setclock/設(shè)置新時間。 * fn osal

5、_getclock /得到當(dāng)前時間。 * fn osal_convertutctime 轉(zhuǎn)換時間格式 * fn osal_convertutcsecs轉(zhuǎn)換時間格式5-osal_memory.c * fn osal_mem_init內(nèi)存管理初始化 * fn osal_mem_kick /任務(wù)初始化 * fn osal_mem_alloc執(zhí)行 osal 動態(tài)內(nèi)存分配函數(shù) * fn osal_mem_free /執(zhí)行osal動態(tài)內(nèi)存 釋放函數(shù)6-osal_pwrmgr.c * fn osal_pwrmgr_init /初始化 電源管理系統(tǒng) * fn osal_pwrmgr_task_state/每一

6、個任務(wù)調(diào)用函數(shù),來陳述是否這個任務(wù)要保存電源 * fn osal_pwrmgr_powerconserve /當(dāng)沒有活動安排 這個函數(shù)從主循環(huán)被調(diào)用,不應(yīng)該從別的地方被調(diào)用。7-osal_snv.c8-osal_timers.c * fn osaltimerinit 初始化osal定時器系統(tǒng) * fn osaladdtimer增加一個定時器到定時器列表 * fn osalfindtimer 在定時器列表中發(fā)現(xiàn)一個定時器 * fn osaldeletetimer 從一個列表中刪除一個定時器 * fn osal_start_timerex /調(diào)用開始一個定時器在n ms內(nèi) * fn osal_st

7、op_timerex /停止一個已經(jīng)啟動的定時器。 * fn osaltimerupdate更新 定時器結(jié)構(gòu) * fn osal_adjust_timers 更新已經(jīng)過去的定時器結(jié)構(gòu) * fn osal_getsystemclock 讀取本地系統(tǒng)時鐘=以上是一個ble應(yīng)用里的osal所用到的函數(shù)名字,及其功能,方便以后查詢。=app文件夾中(bloodpressure.c vs simpleblebroadcaster.c)ble學(xué)習(xí)應(yīng)用筆記21.安裝 d:ti資料ble-stack 安裝目錄文件夾下c:texas instrumentsble-cc254x-1.2.1projectsble

8、下有應(yīng)用列子程序。2.安裝iar軟件 安裝目錄d:ti資料iar embedded workbench3.安裝 smartrf flash programmer軟件smartrf packet sniffer smartrf studio 7 安裝目錄d:ti資料ti software4.閱讀文件夾ble-cc254x-1.2.1下的例子程序。5.app應(yīng)用層 hal硬件驅(qū)動層 osal操作系統(tǒng)層 profiles配置文件層:ble協(xié)議棧的 結(jié)構(gòu)和配置 在這一層設(shè)置。 gap 提供關(guān)于連接的服務(wù) 設(shè)置smp 安全管理 att 屬性結(jié)構(gòu) 設(shè)置gatt 使用屬性協(xié)議發(fā)現(xiàn),服務(wù)或其他關(guān)聯(lián)屬性之間分組

9、信息ble學(xué)習(xí)應(yīng)用筆記3ble學(xué)習(xí)應(yīng)用筆記31.搭建硬件:按接口連接好硬件:usb-小口usb-ccdebugger-dbg_connector-設(shè)備1或設(shè)備2(usb的插頭小塊向內(nèi)/插電池的插頭小塊向外)2.搭建之前安裝軟件:smartrf studio和smartrf flash programmer.3.設(shè)備連接好后,電腦提示要求安裝驅(qū)動:選擇從指定位置安裝:c:program filestexas instrumentssmartrf toolsdriverscebalwin_32bit_x86 (默認位置)插入設(shè)備后還需安裝一個驅(qū)動:c:texas instrumentsble-cc

10、254x-1.2.1accessoriesdrivers。之后,重啟ccdebugger,綠燈亮后,即可正常調(diào)試。4.打開smartrf studio 軟件。“2.4ghz”下選擇“cc2540”5.下載程序:smartrf flash programmer,選擇“soc”,選擇所下載文件*.hex所在文件夾,“actions”中選擇“erase,program and verify”,下載點擊“perform actions”ble學(xué)習(xí)應(yīng)用筆記41,連接好硬件,安裝好驅(qū)動,usb dongle小 是主設(shè)備。2.查看連接的com口。3.使用btool軟件:打開btool,位置在c:texas

11、instrumentsble-cc254x-1.2.1projectsbtool。選擇com口,其余默認(115200,cts/rts,none,one,8),然后ok。4.下載程序:flash programmer或者iarble學(xué)習(xí)應(yīng)用筆記5osal中斷操作:1、 允許中斷uint8 osal_int_enable( uint8 interrupt_id )- interrupt_id:中斷標(biāo)示符2、 禁止中斷uint8 osal_int_disable( uint8 interrupt_id )- interrupt_id:中斷標(biāo)示符3、暫停中斷 hal_enter_critical_s

12、ection(x)4、重新啟用中斷 hal_exit_critical_section(x) osal內(nèi)存操作:1、分配內(nèi)存 void *osal_mem_alloc( uint16 size ) - size:分配緩沖區(qū)的大小2、釋放內(nèi)存 void osal_mem_free( void *ptr ) - ptr:指向釋放的緩沖區(qū)osal消息傳遞:1、分配信息緩沖區(qū) byte * osal_msg_allocate( uint16 len ) - len:信息的長度2、發(fā)送信息 byte osal_msg_send( byte destination_task, byte *msg_ptr

13、) - destination_task:接收信息任務(wù)的標(biāo)示符 - msg_ptr:消息指針3、接收信息 byte *osal_msg_receive( byte task_id ) - task_id:接收信息的任務(wù)id4、釋放消息緩沖區(qū) byte osal_msg_deallocate( byte *msg_ptr ) - msg_ptr:消息指針osal任務(wù)管理:1、任務(wù)初始化 byte osal_init_system( void ) -要創(chuàng)建的任務(wù)列表2、任務(wù)開始 void osal_start_system( void ) -系統(tǒng)任務(wù)的主循環(huán)函數(shù)3、獲取活動任務(wù)id byte os

14、al_self( void ) -中斷服務(wù)子程序中調(diào)用將會發(fā)生錯誤4、事件句柄的函數(shù)原型 (*ptaskeventhandlerfn)( unsigned char task_id, unsigned short event )osal定時器:1、啟動定時器 byte osal_start_timerex( byte taskid, uint16 event_id, uint16 timeout_value ) - taskid:定時器終止時事件任務(wù)的任務(wù)id - event_id:用戶定義的事件,時間終止時通知這個事件 -定時器設(shè)置前的時間量2、停止定時器 byte osal_stop_timerex( byte task_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論