跳到主要內容

發表文章

Run Android VTS with Android R emulator through WSL

Background Android VTS The Android Vendor Test Suite (VTS) provides extensive new functionality for Android testing and promotes a test-driven development process. Android R emulator Run the latest Android R image from Google CI build artifacts WSL WSL is a collection of components that enables native Linux ELF64 binaries to run on Windows . It contains both user mode and kernel mode components. It is primarily comprised of: User mode session manager service that handles the Linux instance life cycle Pico provider drivers (lxss.sys, lxcore.sys) that emulate a Linux kernel by translating Linux syscalls Pico processes that host the unmodified user mode Linux (e.g. /bin/bash) It is the space between the user mode Linux binaries and the Windows kernel components where the magic happens. By placing unmodified Linux binaries in Pico processes we enable Linux system calls to be directed into the Windows kernel. The lxss.sys and lxcore.sys drivers translate the Linux s...
最近的文章

[Android][AOSP][ddmlib][Intelij IDEA][Gradle]搭建Android ddmlib編譯環境

Android ddmlib在AOSP的platform/tools/base的repo內 可以使用以下指令將整個repo的master branch抓回: git clone https://android.googlesource.com/platform/tools/base 取其中的annotations、common、ddmlib 建立Intelij IDEA專案 使用Intelij IDEA開一新的Java Project,GroupId、ArtifictedId、Version隨便,並使用graddle wrapper方式建立專案: GroupId 'com.android.tools.ddms' ArtifictedId = 'ddmlib' Version '1.0-SNAPSHOT' 刪除IDE建立的src資料夾,建立base資料夾,將annotations、common、ddmlib複製進來 參考Android Studio建立的專案,修改build.gradle為: // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { mavenCentral() } } allprojects { repositories { mavenCentral() } } task clean(type: Delete) { delete rootProject.buildDir } 修改settings.gradle,加入annotations、common、ddmlib為include rootProject.name = 'ddmlib' include ':base:annotations' include ':base:common' include ':base:ddmlib' 修改annotations、common、ddmlib內的b...

[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...

[Qt][Embedded][PXA270]
Porting Qt 4.8.6 for Creator XScale PXA270

這篇文章介紹這學期我在嵌入式作業系統課程,使用Creator XScale PXA270板子的一些學習筆記與製作final project的一些過程,歡迎各位多多指教~ 背景介紹 Creator XScale PXA270開發版是一塊由 新華電腦(microtime) 公司出品的 模組化XScale/ARM/SoC/FPGA/DSP嵌入式行動通訊發展平台 ,在此課程與final project主要使用的是"Create XScale‐PXA270 子板"與"MTLCD‐0708048 LCD Module",在Create XScale‐PXA270子板上的為Intel(現在已出售給Marvell)的 Xscale系列 PXA270 處理器,基於ARMv5TE架構指令集,在旁附有SDRAM Memory 64MB、Flash Memory 32MB、SD Card Connectors、RJ45 10/100 Base‐T Ethernet Interface、USB 1.1 Device/Host Port各一、AC97 Audio Codec(Line_in、Mic_in、Headphone)、ADC Interface*4、PWM Interface、CMOS Camera Interface、TFT-LCD Interface、GPIO Interface...等;在軟體功能部分,由新華科技提供了GNU GCC cross compiler toolchain(arm-unknown-linux-gnu-gcc 4.0.2)、Uboot 1.1.5、Linux Kernel 2.6.15.3與patch(提供支援子板上的Ethernet、USB Host、TFT‐LCD(Frame buffer、Touch Screen)、AC97‐Codec...等與母板LED、7‐Seg LED、Key Pad...等的device driver)、rootfs,相關的實驗環境設定可以參考 User Guide 。 看到以上這麼多的軟硬體介面,別以為這板子有多強,其實這是 2006 年 ASUS P535 手機使用的規格了,不禁讓人感嘆科技進步之快阿~ 在此附上開發版本尊 Qt 是自由且開放原始碼的跨平台C...