学習日記——ESP 8266システムインタフェース(2020.2.18)

10507 ワード

システムインタフェースは/ESP8266_ NONOS_ SDK/include/user jinterface.hにあります.os_ XXXシリーズインターフェースは、/ESP8266 NONOS_ SDK/linclude/osapi.hにある.
一、システム_get sdk_ version
  • 機能:SDKバージョン情報
  • を問い合わせる
  • 関数定義:const char* system_ _get_ sdk_ version(void)
  • 二、OS_printf
  • 機能:出力をフォーマットし、文字列を印刷します.

  • 【注意】本インタフェースはUART 0からデフォルトで印刷されます.I0T_ Demoのuart_ initは、ボーレートを設定して、os_ printfをUART 1から印刷するように変更することができます.os. install_ putc1((void *)uart1_ write_ char);は、本インタフェースを呼び出して125バイトを超えてはいけないデータを印刷したり、頻繁に本インタフェースを呼び出して印刷したりします.そうしないと、印刷対象のデータの一部が失われる可能性があります.
  • 関数定義:void OS_ printf(const char *s)
  • パラメータ:const char *s:文字列
  • 戻り:
  • なし
  • 例:oS_ printf(“SDK version: %s
    ” ,system _get_ sdk_ version());
  • 三、OS_strlen
  • 機能:C言語関数をカプセル化し、文字列長を計算します.
  • 関数定義:os_ strlen(char *s)
  • パラメータ:char *s:文字列
  • は、文字列の長さ
  • を返します.
  • 例:
  • char *ssid =“ESP8266”;
     os_ memcpy(softAP. config.ssid, ssid, oS_ strlen(ssid));
    

    四、システム_init_ done_ cb
  • 機能:user_Initで呼び出し、システム初期化完了のコールバック関数を登録します.
  • 注意:インタフェースwifi_station_ scanは、システム初期化が完了し、Stationモードが可能になった場合に呼び出さなければならない.
  • 関数定義:void system_ init_ done_ cb(init. done_ cb_t cb)
  • パラメータ:init_ done_ cb. t cb:システム初期化完了コールバック関数
  • 戻り値:なし.
  • 例:
  • void to. _scan(void) 
    { 
    	wifi. _station_ scan(NULL,scan_ done); 
    }
    void user. init(void) 
    {
    	wifi_ set_ opmode(STATION_ MODE);
    	system_ _init_ done_ cb(to_ scan);
    }
    

    五、システム_OS_ task
  • 機能:システムタスクを作成し、最大3つのタスクの作成をサポートし、優先度はそれぞれ0/1/2
  • である.
  • 関数定義:
  • bool system_ os_ task
    (
    	os_ task_ t    task,
    	uint8          prio,
    	os_ event_ .t  *queue,
    	uint8          qlen
    )
    
  • パラメータ:os_ task t task:タスク関数uint8 prio:タスク優先度、0/1/2;0が最小優先度です.これは、最大3つのタスクos. _event. t *queueの確立のみをサポートすることを示す:メッセージキューポインタuint8 qlen:メッセージキュー深さ
  • 六、システム_OS_ post
  • 機能:タスクにメッセージを送信する
  • 関数定義:
  • bool system_ OS_ post 
    (
    	uint8 prio,
    	os_ signal_t sig,
    	os_ param_ .t par
    )
    
  • パラメータ:uint8 prio:タスク優先度は、確立時のタスク優先度に対応します.os_ signal. t sig:メッセージタイプos_ param_t par:メッセージパラメータ
  • 戻り値:true:成功;false:失敗
  • 例:
  •  void task post(void) 
     { 
     	system_ os. post(USER TASK_ PRI0_ 0,SIG_ RX,'a’ );
     }
    

    七、OS_memset
  • 機能:パラメータ1(dest)が指す位置のnbyteバイトをval指定ASCII値/データ
  • に全て埋め込む.
  • 関数定義:void os_memset( void *dest, int val, unsigned int nbyte )
  • パラメータ:dest、ターゲットアドレス;val、文字/データを入力します.nbyte、パディングバイト数
  • 戻り値:destへのvoid*ポインタ
  • 八、OS_memcpy
  • 定義:パラメータ2(src)が指す位置から、nbyteバイトをパラメータ1(dest)が指す位置にコピーする
  • .
  • 関数定義:void os_memcpy( void *dest, const void *src, unsigned int nbyte )
  • パラメータ:dest、ターゲットアドレス;src:ソースアドレス;nbyte:コピーされたバイト数
  • 戻り値:destへのvoid*ポインタ
  • 九、OS_memmove
  • 機能:パラメータ2(src)が指す位置から、nbyteバイトをパラメータ1(dest)が指す位置にコピーする
  • .
  • 関数定義void os_memmove( void *dest, const void *src, unsigned int nbyte )
  • 注意:ターゲット領域とソース領域が重複している場合、memmoveは、ソース文字列が上書きされる前に重複領域のバイトをターゲット領域にコピーすることを保証することができる.ただし、コピーするとsrcの内容が変更されます.ターゲット領域がソース領域と重複していない場合はmemcpy関数と同じ機能です.
  • パラメータ:dest:ターゲットアドレス;src:ソースアドレス;nbyte:コピーされたバイト数
  • 戻り値:destへのvoid*ポインタ
  • 十、OS_memcmp
  • 機能:比較パラメータ1(str 1)指向位置とパラメータ2(str 1)指向位置の前nbyteバイト(バイト別比較)
  • 関数定義:
  • int  os_memcmp( const void *str1,  const void *str2,  unsigned int nbyte )
    
  • パラメータ:dest、ターゲットアドレス;src、ソースアドレス;nbyte、比較バイト数
  • 戻り値:戻り値<0:buf 1戻り値=0:buf 1=buf 2戻り値>0:buf 1>buf 2
  • 例:char*s 1="abc";char *s2=“acd”; int result = memcmp(s1,s2,3); s 1とs 2の最初の3バイトを比較し、最初のバイトは等しく、2番目のバイトの比較ではs 1

  • 十一、os_strstr
  • 機能:文字列str 2がstr 1のサブ列であるか否かを判断する
  • 関数定義:char * os_strstr( const char *str1, const char *str2 )
  • パラメータ:str 1、文字列1(親列);str 2、文字列2(サブストリング)
  • 戻り値:戻り値=NULL:文字列2は文字列1のサブ列戻り値ではありません!=NULL:文字列2は文字列1のサブストリングであり、文字列2が文字列1に初めて現れるアドレス
  • を返す
    十二、strcpy
  • 機能:パラメータ2(src)が指す位置からの文字列('0'の終端を含む)を、パラメータ1(dest)で始まるアドレス空間
  • にコピーする.
  • 関数定義:char*strcpy(char*dest,const char*src)
  • パラメータ:dest、ターゲットアドレス;src、ソースアドレス
  • 戻り値:destを指すchar*ポインタ
  • 十三、os_strncpy
  • 機能:パラメータ2(src)が指す位置からの文字列の先頭nbyteバイトを、パラメータ1(dest)から始まるアドレス空間
  • にコピーする.
  • 関数定義:
  • char *  os_strncpy( char *dest,  char *src,  unsigned int nbyte)
    
  • 注意:1、srcの前のn文字にNULL文字が含まれていない場合、結果はNULL文字で終わりません.すなわち、n 2の場合、srcの長さがnバイト未満の場合、destはnバイトがコピーされるまで'0'で埋め込まれる.3、srcとdestが指すメモリ領域は重複してはいけません.destはsrcの文字長+'0'を収容するのに十分な空間が必要です.
  • パラメータ:dest、ターゲット文字列;src、ソース文字列;nbyte、コピーされたバイト数
  • 戻り値:destを指すchar*ポインタ
  • 十四、os_strcmp
  • 機能:2つの文字列を左から右へ1文字ずつ比較(ASCII値の大きさで比較)し、異なる文字が現れるまで
  • .
  • 関数定義:int os_strcmp( const char *s1, const char *s2 )
  • パラメータ:1、s 1:文字列1 2、s 2:文字列2
  • 戻り値:戻り値<0:s 1戻り値=0:s 1=s 2戻り値>0:s 1>s 2
  • 十五、os_strncmp
  • 機能:文字列s 1とs 2の前のnbyte文字を比較します.
  • 関数定義:
  • int  os_strncmp( const char *s1,  const char *s2,  unsigned int
       nbyte)
    
  • 注意:比較する文字には文字列終了フラグ'0'が含まれ、'0'に遭遇すると比較が終了し、nbyteがいくらであっても後の文字の比較は続行されません.
  • パラメータ:1、s 1:文字列1 2、s 2:文字列2 3、nbyte:比較バイト数
  • 戻り値:戻り値<0:s 1戻り値=0:s 1=s 2(前のnbyteバイト)戻り値>0:s 1>s 2(前のnbyteバイト)
  • 十六、OS_delay_ us
  • 機能:遅延関数.最大値65535μs
  • 関数定義:void os_ delay_us(uint16 us)
  • パラメータ:uint16 us:遅延時間
  • 戻り:
  • なし
    十七、OS_bzero
  • 機能:セット文字列pの最初のnバイトがゼロであり、0
  • を含む.
  • 関数定義:void os_ bzero(void *p,size. _t n)
  • パラメータ:void *p:ゼロにするデータの開始アドレス;size+n:ゼロにするデータバイト数.

  • 18、0 S_install _putc1
  • 機能:印刷インタフェース関数
  • を登録する
  • 関数定義:void oS. _install_ putc1(void(*p)(char )
  • パラメータ:void(*p)(char c)印刷インタフェース関数ポインタ
  • 戻り:
  • なし
  • 例:UART.cuart. initos. _install_ putc1((void *)uart1_ write_ char)を参照して、os_ printfをUART 1から印刷するように変更します.そうでなければ、os_ printfはUART 0からデフォルトで印刷されます.