SDK สำหรับ TESAIoT Dev Kit
คู่มืออ้างอิง API และ Tutorial (MTB & µPython)
Loading...
Searching...
No Matches
การเข้าถึง 2 ชั้น — ใครเรียกอะไรได้บ้าง

ชั้นของผู้เรียกมี 2 ชั้นพอดี และทั้ง 2 ชั้นไม่ทับซ้อนกัน:

  • โค้ด C ที่คอมไพล์เข้าไปใน proj_cm55 เรียก ai_engine_* และ ai_model_staged_* ได้โดยตรง ผู้เรียกบนบอร์ด (หน้า Edge AI, task ของการเชื่อมโมเดล และขั้นตอนเปิดจอ) อยู่ภายใน libbento_cm55.a ที่คอมไพล์มาแล้ว; lib/cm55_core/consumer_must_provide.txt แสดงรายการ symbol ai_* จำนวน 35 ตัวที่ archive นั้นเรียกใช้ ส่วนตัวอย่างที่คอมไพล์ได้สำหรับโค้ดของผู้อ่านเองอยู่ที่ proj_cm55/examples/edge_ai/
  • MicroPython ทำงานบน CM33_NS และ เรียก ai_engine_* ไม่ได้เลย มันเข้าถึงโมดูลนี้ได้ทาง model link บน IPC เท่านั้น — โมดูล edge_ai.* (mp_module_edge_ai ซึ่งส่งออกจาก lib/mpy_secure/api.txt) ส่งคำสั่ง MODEL_LINK_* ที่ task ของการเชื่อมโมเดลบน CM55 ให้บริการ และ task นั้นเองคือสิ่งที่เรียกเข้ามาใน archive นี้ โปรแกรม MicroPython จึงไม่เคยเห็น prototype ฝั่ง C จากหน้านี้เลย; สิ่งที่เห็นคือ edge_ai.select(), edge_ai.result(), edge_ai.diag() และตัวอื่น ๆ ซึ่งมีความหมายตามที่ระบุไว้ที่นี่

ตัวอย่างในหน้าเหล่านี้เขียนขึ้นจาก API สาธารณะ ส่วนฟังก์ชันที่ไม่มีผู้เรียกในเฟิร์มแวร์ที่ส่งมอบ จะกำกับไว้ว่า Example (authored — no shipped call site)