跳到主要內容

發表文章

目前顯示的是 2016的文章

[Intel][IoT][Galileo]重新編譯Intel Quark-based Galileo Gen 2的Bootloader、kernel、file system、cross compilation toolchain

這篇文章參考由Intel提供的BSP build guide,詳細記錄在Ubuntu 14.04 LTS實驗環境上,由source code建立Intel Quark-based Galileo Gen 2開發板BSP的過程,包含Bootloader、kernel、file system、cross compilation toolchain...等,做為隨時可以重新驗證的實作筆記並從中分析與學習真槍實彈的嵌入式開發技巧。 Intel Quark BSP 由Intel官網下載Intel® Quark™ BSP: https://downloadcenter.intel.com/download/23197 下載回來的檔案為BSP_Sources_and_Docs_for_Intel_Quark_v1.2.1.zip 解壓縮後包含一個source code包與四份文件,分別為: Board_Support_Package_Intel_Quark_v1.2.1.7z: 裏頭包含EDKII Firmware(Quark_EDKII_v1.2.1.tar.gz)、 四份文件: Intel® Quark™ SoC X1000的BSP_BuildGuide、Software_Developer_Manual、Software_Release_Notes與UEFI_Firmware_Writers_Guide 建置EDKII Firmware 首先由建置EDKII Firmware開始,這是一個modern、feature-rich、Open Source、跨平台的UEFI firmware,以下為它的官網與github網址連結: 官網: http://www.tianocore.org/ Github上的Getting-Start教學: https://github.com/tianocore/tianocore.github.io/wiki/Getting-Started-with-EDK-II 以下記錄整個過程下的指令: sudo apt-get install build-essential uuid-dev iasl subversion nasm tar zxvf Quark_EDKII_v1.2.1.tar...

[Intel][IoT][Galileo]Intel IoT初體驗:
跨Windows、OSX、Linux三大平台支援的Intel Quark-based Galileo Gen 2開發板

這篇文章記錄在Intel Quark-based Galileo Gen 2開發板上愉快的Getting Start經驗!! 本尊與配件 下圖就是 Intel Quark-based Galileo Gen 2開發板!! 又是一片與Arduino相容的IoT開發板,配上熱熱的Intel SoC、大大的乙太網路孔跟不知道是否故意設計無防呆的USB轉RS232排針... SD Card跟網路線非標配,不過還好Micro SD card很便宜隨便買個class 4 SDHC的就行了歐!! (PS:此板子只支援32GB以內SDHC格式的SD card歐!!) 看到4GB跟8GB價錢相同,於是就拿8GB了!!也有不附轉卡更便宜的: 快快樂樂Getting Start 請點開Intel的Getting Start,選擇OS、IDE開始Prepare Your MicroSD Card: https://software.intel.com/en-us/iot/library/galileo-getting-started 基本上就是把Pre-built image塞進SD Card、將SD Card插入板子、將不防呆的排線連接板子與USB端連接電腦,裝電腦上的COM Port driver for serial terminal、在Host上使用putty(或相對應的serial terminal)設定鮑率(Baud)與COM Port號碼後開啟、看板子開心的boot image,設定板子網路IP,最後在Host上安裝Intel® Developer Kit version of the Eclipse* IDE (By the way,請完全使用Intel提供的Image與Eclipse等工具組,才能完全照官網教學做) 因為Intel寫得太好了,所以這邊只補充網路部分,Intel官網提供的是透過Wifi模組連接網路,而此片板子使用的是乙太網路,預設板子會使用DHCP自動取得IP,可以透過ifconfig看到板子取到的IP address: ifconfig -a 或是手動設定IP,然後ping看看是否成功: ifconfig enp0s20f6 140.114.78.51...

[Arduino][Eclipse]使用原生的Eclipse CDT建立Andes Andino M1燒錄檔

這篇文章在Windows上以原生的Eclipse CDT,建立Andes Andino M1燒錄檔,藉機探索Andes Andino M1的編譯流程。 歡迎各位多多指教~ 前言提要 由於Arduino原生的IDE對於編寫程式的支援度不足,無法像一般編寫程式那樣點一下追蹤進每個function,也無法進行太多編譯參數的控制,所以想要使用Eclipse重建整個編譯流程,而Arduino搭配Eclipse其實不是件新鮮事,已經有 Arduino Eclipse Plugin ,Andes也在knect.me上提供 Eclipse Arduino IDE ,但是在選擇板子那邊一直沒看到Andino M1選項,而且再也不想繼續被Arduino的sketch綁住,讓我們回歸最原生的C++程式吧~ 準備環境 請先 將 Arduino IDE安裝完成與板子安裝(參考之前的 文章 ) 從Eclipse官網下載Eclipse IDE for C/C++ Developers:  https://eclipse.org/downloads/ 基礎Eclipse操作請自己Google了歐~ 建立核心專案 在先前的 文章 有提過,在撰寫 Arduino sketch時,Arduino IDE會送你一包核心程式碼!! 這些核心程式碼就在Arduino IDE的board manager安裝板子時,幫你下載安裝的。 預設位置在%HOMEDRIVE%%HOMEPATH%\AppData\Local\Arduino15 (%HOMEDRIVE%%HOMEPATH%是Windows上相應於Linux的HOME directory,可以下echo %HOMEDRIVE%%HOMEPATH%來看你的結果) 我們將這些核心程式碼建立為靜態函示庫,供Arduino sketch應用連結。 以下是Eclipse的核心專案建立步驟: [File]->[New]->[C++ Project],Project Name這裡為AndinoM1_Cores1.6.5,Project Type為Static Library,Toolchains為Cross GCC,按[Next]選擇Configuration可以只保留Debu...

[SDN]Computer Networks課後筆記-Software Defined Networking初識

這篇文章筆記在今天交大林盈達老師Computer Networks課程介紹的SDN概念,新手入門歡迎各位多多指教~ 正文開始 傳統的Router提供 實體層(Physical Layer): 介質(Medium)連接、Coding(Source/Channel/Line)、Modulation、Multiplexing... 鏈結層(Link Layer,Node-to-Node,single hop): Framing、Addressing(MAC Address)、CRC Error Control、Flow Control... 網際網路協定協定層(IP Layer,Host-to-Host,multi hop): Data plane(IPv4、IPv6)、Control Plane(Routing、ARP、DHCP、ICMP、multicasting) 共三層的服務,將封包路由(routing)到目的地。 其中Control Plane就像是人的腦袋,Data plane就像是人的身體。 SDN就是把Router的腦袋都砍下來,把它們放到cloud上的Virtual Machine去run,讓Router只留下最基本的功能。 放到雲端run的好處(發展SDN的好處): A. 需要的physical machine少於砍下來的腦袋 B. 根據排隊理論(Queueing Theory,應該是裏頭的Little's law),large resource比split resource的response time好 C. Cisco Router硬體成本僅售價的10%,價值來自上面的軟體,使用SDN可以不用透過update frimare方式更新軟體(須重啟router),透過VM Handover即可切換 D. Computing Power不在受限於Router的處理器速度,SDN App可以做些創新的功能 關於SDN Application A. 執行於cloud上的VM內 B. 與手機APP的比較,手機APP是一次性下載,執行於使用者裝置上,而SDN APP是租借方式,需要持續付錢租借VM來執行APP 一個很重要的問題:SDN router與cloud的距離是否太遠? 是!!即使Google全球也只有14個Da...