|
SDK สำหรับ TESAIoT Dev Kit
คู่มืออ้างอิง API และ Tutorial (ModusToolbox)
|
Functions | |
| void | fw_hash_compute_at_boot (void) |
| คำนวณและแคช digest อัตลักษณ์แบบ SHA-256 ไว้ (ราว 80 ms หนึ่งครั้ง) เป็น idempotent | |
| const char * | fw_hash_hex (void) |
| digest 64 อักขระที่แคชไว้ ไม่เป็น NULL เสมอ — ได้ "unknown" ก่อนการคำนวณ ห้าม free ค่านี้ | |
| void | fw_hash_prefix8 (char *out9) |
| เขียน hex 8 อักขระแรก + NUL ลงใน out9 (ต้องมีอย่างน้อย 9 ไบต์) ไม่มีผู้เรียกที่ใดเลย | |
| void | fw_hash_get_diagnostics (fw_hash_diag_t *out) |
| เติม snapshot ข้อมูลวินิจฉัยของ hash ที่ผู้เรียกเป็นเจ้าของ สำหรับบล็อก _diag ของ bento.fw.query | |
| void | bento_fw_handle_query (const char *json, const jsmntok_t *toks, int n_toks) |
| handler ของ bento.fw.query: เป็น probe อ่านอย่างเดียวที่ต้นทุนต่ำสำหรับ metadata เรียกจาก dispatcher เท่านั้น | |
| void | bento_fw_handle_update_begin (const char *json, const jsmntok_t *toks, int n_toks) |
| handler ของ bento.fw.update.begin: เปิดคำถามยืนยัน Y/N บนจอ LCD และเลื่อน ack ไปจนกว่าจะมีการตัดสินใจ | |
| void | bento_fw_emit_boot_complete (void) |
| ส่ง bento.fw.update.complete หนึ่งครั้งต่อการบูตหนึ่งรอบ ตอนเปลี่ยนสถานะเป็น CONNECTED ครั้งแรก | |
| void | bento_fw_on_user_decision (int approve) |
| ส่งผลการตัดสินใจ Y/N จากจอ LCD ของ CM55 สำหรับคำถามยืนยันปัจจุบัน เป็น no-op เมื่อไม่มีคำถามค้างอยู่ | |
8 ฟังก์ชัน: hash ของเฟิร์มแวร์ (fw_hash_*) และกระบวนการอัปเดต (bento_fw_*) คอมไพล์เฉพาะเมื่อ ENABLE_PAGE_BENTO_BUDDY=1 (ค่าตั้งต้นคือ 0, proj_cm33_ns/Makefile:64, :305) ให้ build ใหม่หลังจาก make getlibs — ดู Flag gate (อ่านก่อน)
การประกาศ: fw_hash.h และ bento_fw.h (ซึ่งประกาศ jsmntok_t ล่วงหน้าไว้เอง จึงไม่ต้องใช้ vendor/jsmn.h) ส่วนการนำไปสร้างจริงใน fw_hash.c / bento_fw.c ถูกเก็บไว้ใน libbento_secure.a การแฟลชทุกครั้งที่สั่งมาจากฝั่ง desktop ต้องผ่านคำถามยืนยัน Y/N บนจอ LCD ของอุปกรณ์ ซึ่งแสดงอักขระ hex 8 ตัวแรกของ SHA-256 ปลายทาง ไม่มีทางลัดข้าม และไม่มีการตอบ yes ให้เองเมื่อหมดเวลา
| void fw_hash_compute_at_boot | ( | void | ) |
คำนวณและแคช digest อัตลักษณ์แบบ SHA-256 ไว้ (ราว 80 ms หนึ่งครั้ง) เป็น idempotent
| const char * fw_hash_hex | ( | void | ) |
digest 64 อักขระที่แคชไว้ ไม่เป็น NULL เสมอ — ได้ "unknown" ก่อนการคำนวณ ห้าม free ค่านี้
| void fw_hash_prefix8 | ( | char * | out9 | ) |
เขียน hex 8 อักขระแรก + NUL ลงใน out9 (ต้องมีอย่างน้อย 9 ไบต์) ไม่มีผู้เรียกที่ใดเลย
| void fw_hash_get_diagnostics | ( | fw_hash_diag_t * | out | ) |
เติม snapshot ข้อมูลวินิจฉัยของ hash ที่ผู้เรียกเป็นเจ้าของ สำหรับบล็อก _diag ของ bento.fw.query
| void bento_fw_handle_query | ( | const char * | json, |
| const jsmntok_t * | toks, | ||
| int | n_toks ) |
handler ของ bento.fw.query: เป็น probe อ่านอย่างเดียวที่ต้นทุนต่ำสำหรับ metadata เรียกจาก dispatcher เท่านั้น
| void bento_fw_handle_update_begin | ( | const char * | json, |
| const jsmntok_t * | toks, | ||
| int | n_toks ) |
handler ของ bento.fw.update.begin: เปิดคำถามยืนยัน Y/N บนจอ LCD และเลื่อน ack ไปจนกว่าจะมีการตัดสินใจ
| void bento_fw_emit_boot_complete | ( | void | ) |
ส่ง bento.fw.update.complete หนึ่งครั้งต่อการบูตหนึ่งรอบ ตอนเปลี่ยนสถานะเป็น CONNECTED ครั้งแรก
| void bento_fw_on_user_decision | ( | int | approve | ) |
ส่งผลการตัดสินใจ Y/N จากจอ LCD ของ CM55 สำหรับคำถามยืนยันปัจจุบัน เป็น no-op เมื่อไม่มีคำถามค้างอยู่