Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[五載復相逢,軟體二三事] 軟硬整合漫漫路

Sam Huang
December 01, 2021

[五載復相逢,軟體二三事] 軟硬整合漫漫路

硬體開發時的一些思維慣性和軟體人有些地方不太一樣
這往往會在合作時雞同鴨講甚至隱性的造成失敗

研究所時代研究的是即時系統及硬體虛擬化技術
第一份工作在品牌系統廠做 Android 開發
而後隨著職涯發展逐漸朝上層 APP 及 Web 前進
韌體到軟體走了一個循環

預計將過往切成幾個階段,分享一下各階段的心得 (學生 → 大公司 → 新創)
也會聊一下開發的一些經驗及軟硬整合時有哪些需要注意的地方

Sam Huang

December 01, 2021
Tweet

More Decks by Sam Huang

Other Decks in Programming

Transcript

  1. 活動緣起 五載復相逢,軟體二三事:以分享來試著替自己的一些過往經驗做個小結 - 印刷電商 + GatsbyJS ◦ 投影片:https://revteltech.pse.is/lixiang-hiprint-sharing ◦ Medium:https://revteltech.pse.is/hiprint-sharing

    - React Native 五年回顧 ◦ 投影片:https://revteltech.pse.is/react-native-sharing-3 ◦ Medium:https://revteltech.pse.is/rn-5-yrs 重點比較不完全在技術上 - 比較想聊聊 技術 / 管理 / 領域 / 商業 上的平衡 - 只是一家之言,也未必是最佳解
  2. AGENDA Self Introduction & Preface 自我介绍 & 前言 1 Conclusion

    總結 3 Experience Sharing 經驗分享:起承轉合 2 Question & Answer 意見交流 4
  3. 忻旅科技 RevtelTech 軟體方案公司:由 開發 / 顧問 / 維運 / 管理

    找尋商業可能 - 合作夥伴:海外獨角獸到本土新創 - 合作內容:專案、產品到合開公司 - 技術範圍: Web、APP、IoT 到內部系統 - 開發領域:電商、物流、醫療、金融、展覽、印刷、旅宿及教育等
  4. 黃奕翔 Sam 自我介紹 台大資訊系 / 所 : 嵌入式系統暨無線網路實驗室 Garmin Platform

    Team Engineer / ( ... ) Software Engineer RevtelTech 忻旅科技 / EcultureTech 奕果雲端 Co-Founder --- 嵌入式系統 openCSL 開放式教材 / ARM Accredited Engineer Firmware → Linux driver → Android framework → APP / Web Engineer / Consultant / Manager (CEO or CTO)
  5. PC → NB → Smart Phone → Tablet → IoT

    → AIoT → ? 碩士班 → 創業 個人經驗的拋磚引玉 / 心得分享 前言 2008 2018
  6. 在 A 機器上編譯 B 機器能跑的程式 OSSF Project - 開放式課程 利用

    Ubuntu (virtualbox) 學習嵌入式系統 Linux kernel/filesystem/interrupt/... Cross compile 基於 ARM Platform (by QEMU) Opencsl
  7. Opencsl Why emulate arm board by QEMU ? Raspberry Pi

    (from 2012) / Arduino / … openMoko meego/moblin/symbian/...
  8. 即時系統 Real-Time Computing 系統中有很多任務,每個任務有其 period / execution time / deadline,要

    確保所有 task 都能執行完畢 技術的深刻在其衍生義 Round-robin: 分時系統
  9. Real-time scheduling = 一套檢驗方法 + 一套排程方法 Real-Time Computing Worst case

    evaluation RMS (rate-monotonic scheduling) EDF (earliest deadline first) Scheduling → Resource Management
  10. Projects PAC DUO • 模擬器 • virtual NIC QoS control

    中華電信服務不中斷 • os virtualization • queueing theory
  11. 小結 系統程式 / 作業系統 / Compiler / ... 學到的東西會在某時間點匯流 processing

    migration / Virtualization ... 看技術從其發展歷史看起 many-core vs. cloud-computing 對技術應用的想像 c
  12. 主要內容圍繞 android / linux 在 Garmin 的三年 工作內容 • sensors:

    G sensor / M sensor / gyroscope / Pressure sensor / UV sensor • audio system • others: uboot / utility / touch / 開板子 / …
  13. 小結 硬體其實沒那麼簡單 • const 變數的浮動 • 超過 4 根 gpio

    能表示的硬體版本 (第八版之後量產!) 軟體工具很重要 • 大量的 auto git checkout + symbolic link • 適度引入 wrapper
  14. 開發步驟 目標 能和該 溫度計相容 (BLE) 的 Android / Ios app

    驗證是否可行 → 破解藍牙 4.0 protocol → app 開發
  15. 破解藍牙 protocol 使用邏輯不好確定, 一天只能傳一次 • 後來發現是硬體限制 可用工具 • ios 錄製

    HCI / android 錄製 nfc payload • android app decompiler • root 過的 android system
  16. 軟硬整合開發 軟體架構選擇 • 規格化 (Restful / ...) • hybrid app

    硬體方案評估 • 追求掌握度及量產難度可控
  17. 我們可能想錯的事 … ? 智能化只是輔助! • 安全性:按鈕 / 螢幕 ? •

    考慮返修 轉型不是第一版就要ready! • feature 上規劃要考慮現實情 況,eg. 產測
  18. 總結 • 工程師鄙視鏈 • 思考模型 vs.物理限制 軟體人及硬體人的差別 • 考慮營運及量產 •

    Java / PHP 仍舊是好的選擇 • Scrum ? 經驗的重要 軟體創造價值,硬體賦予可能