[技術] 各家Toolchains的比較

Written on 4:04 下午 by Yu Lai

一般而言,
在開發Embedded System時大都需要用到不同平台的cross-compiler與Toolchains。
而在elinux.org有一篇介紹各家Toolchains的文章,就轉來參考囉。

Ref: http://elinux.org/Toolchains

以下是常見的幾個Toolchains的說明:

CodeSourcery
CodeSourcery develops Sourcery G++, an Eclipse based Integrated Development Environment (IDE) that incorporates the GNU Toolchain (gcc, gdb, etc.) for cross development for numerous target architectures. CodeSourcery provides a "lite" version for ARM, Coldfire, MIPS, SuperH and Power architectures. The toolchains are always very up to date. CodeSourcery contributes enhancements it makes to the GNU Toolchain upstream continually, making it the single largest (by patch count) corporate contributor.

DENX ELDK
The DENX Embedded Linux Development Kit (ELDK) provides a complete and powerful software development environment for embedded and real-time systems. It is available for ARM, PowerPC and MIPS processors and consists of:
Cross Development Tools (Compiler, Assembler, Linker etc.) to develop software for the target system.
Native Tools (Shell, commands and libraries) which provide a standard Linux development environment that runs on the target system.
Firmware (U-Boot) that can be easily ported to new boards and processors.
Linux kernel including the complete source-code with all device drivers, board-support functions etc.
Xenomai - RTOS Emulation framework for systems requiring hard real-time responses.
SELF (Simple Embedded Linux Framework) as fundament to build your embedded systems on.
All components of the ELDK are available for free with complete source code under GPL and other Free Software Licenses. Also, detailed instructions to rebuild all the tools and packages from scratch are included.
The ELDK can be downloaded for free from several mirror sites or ordered on CD-ROM for a nominal charge (99 Euro). To order the CD please contact office@denx.de
Detailed information about the ELDK is available here.

Buildroot
Buildroot is a complete build system based on the Linux Kernel configuration system and supports a wide range of target architectures. It generates root file system images ready to be written to flash. In addition to having a huge number of packages which can be compiled into the image, it also generates a cross toolchain to build those packages from source. Even if you don't want to use buildroot for your root filesystem, it is a useful tool for generating a toolchain. It should be noted however that it only supports uClibc. If you want to use glibc, you'll need something else.

[技術] Linux下使用Minicon+Kermit

Written on 10:41 上午 by Yu Lai

這陣子接了新的板子的開發,由於H/W的關係,
加上JTAG數量有限,所以只能先用RS-232來傳image到板子上run。

目前板子上的Loader為舊版本的u-boot,它只有支援Kermit protocol來傳輸。
說到Kermit,在Windows下有名的TeraTerm的檔案傳送功也有支援kermit protocol。
以下就是我在Linux下使用Minicom+Kermit的心得整理;

1. 安裝minicom和ckermit
請先透過apt-get或Synaptic把minicom和ckermit裝起來。

2. 配置ckermit的設定檔
將以下內容放在~/.kermrc裡.
set carrier-watch off
set prefixing all
set parity none
set stop-bits 1
set modem none
set file type bin
set file name lit
set flow-control none
set prompt "Linux Kermit> "

3. 配置minicom
使用minicom -s,到"檔案傳輸協定"或"File Transfer protocols"裡的G和H,
G設定為/usr/bin/kermit -i -l %f -b %b -s Y U Y N N,
H設定為/usr/bin/kermit -i -l %f -b %b -r N D Y N N。

4. 開始傳檔
執行Ctrl+A -> S,接著選完檔案後即可開始傳送檔案了。

PS1:
以上minicom的設定,
可以使用Ctrl+A -> O裡的"儲存設定",
這樣就不用每次都重新設定了。

PS2:
一般而言除了Kermit外,
常見的還有使用x-modem, y-modem或z-modem protocol來傳送。
而minicom都可以配合外掛程式來達到此功能。

[企管] [轉錄]企業常用的縮寫

Written on 11:07 上午 by Yu Lai

From: http://wiki.planetoid.info/index.php/%E4%BC%81%E6%A5%AD%E5%B8%B8%E7%94%A8%E7%9A%84%E7%B8%AE%E5%AF%AB

5S 5S管理
ABC 作業製成本制度 (Activity-Based Costing)
ABB 實施作業制預算制度 (Activity-Based Budgeting)
ABM 作業製成本管理 (Activity-Base Management) (see cost management)
APS 先進規畫與排程系統 (Advanced Planning and Scheduling)
ASP 應用程式服務供應商(Application Service Provider)
ATP 可承諾量 (Available To Promise)
AVL 認可的供應商清單(Approved Vendor List)
BOM 物料清單 (Bill Of Material)
BPR 企業流程再造 (Business Process Reengineering)
BSC 平衡記分卡 (Balanced ScoreCard)
BTF 計劃生產 (Build To Forecast)
BTO 訂單生產 (Build To Order)
CPM 要徑法 (Critical Path Method)
CPM 每一百萬個使用者會有幾次抱怨(Complaint per Million)
CRM 客戶關係管理 (Customer Relationship Management)
CRP 產能需求規劃 (Capacity Requirements Planning)
CTO 客製化生產 (Configuration To Order)
DBR 限制驅導式排程法 (Drum-Buffer-Rope)
DMT 成熟度驗證(Design Maturing Testing)
DVT 設計驗證(Design Verification Testing)
DRP 運銷資源計劃 (Distribution Resource Planning)
DSS 決策支援系統 (Decision Support System)
EC 設計變更/工程變更 (Engineer Change)
EC 電子商務 (Electronic Commerce)
ECM 企業內容管理(Enterprise content management)
ECRN 原件規格更改通知(Engineer Change Request Notice)
EDI 電子資料交換 (Electronic Data Interchange)
EIS 主管決策系統 (Executive Information System)
EMC 電磁相容(Electric Magnetic Capability)
EOQ 基本經濟訂購量 (Economic Order Quantity)
ERP 企業資源規劃 (Enterprise Resource Planning)
FAE 應用工程師(Field Application Engineer)
FCST 預估(Forecast)
FMS 彈性製造系統 (Flexible Manufacture System)
FQC 成品品質管制 (Finish or Final Quality Control)
IPQC 製程品質管制 (In-Process Quality Control)
IQC 進料品質管制 (Incoming Quality Control)
ISO 國際標準組織 (International Organization for Standardization)
ISAR 首批樣品認可(Initial Sample Approval Request)
JIT 即時管理 (Just In Time)
KM 知識管理 (Knowledge Management)
L4L 逐批訂購法 (Lot-for-Lot)
LTC 最小總成本法 (Least Total Cost)
LUC 最小單位成本 (Least Unit Cost)
MES 製造執行系統 (Manufacturing Execution System)
MO 製令(Manufacture Order)
MPS 主生產排程 (Master Production Schedule)
MRO 請修(購)單(Maintenance Repair Operation)
MRP 物料需求規劃 (Material Requirement Planning)
MRPII 製造資源計劃 (Manufacturing Resource Planning)
NFCF 更改預估量的通知(Notice for Changing Forecast)
OEM 委託代工 (Original Equipment Manufacture)
ODM 委託設計與製造 (Original Design & Manufacture)
OLAP 線上分析處理 (On-Line Analytical Processing)
OLTP 線上交易處理 (On-Line Transaction Processing)
OPT 最佳生產技術 (Optimized Production Technology)
OQC 出貨品質管制 (Out-going Quality Control)
PDCA PDCA管理循環 (Plan-Do-Check-Action)
PDM 產品資料管理系統 (Product Data Management)
PERT 計畫評核術 (Program Evaluation and Review Technique)
PO 訂單(Purchase Order)
POH 預估在手量 (Product on Hand)
PR 採購申請(Purchase Request)
QA 品質保證(Quality Assurance) see also Quality control
QC 品質管制(Quality Control)
QCC 品管圈 (Quality Control Circle)
QE 品質工程(Quality Engineering)
RCCP 粗略產能規劃 (Rough Cut Capacity Planning)
RMA 退貨驗收(Returned Material Approval)
ROP 再訂購點 (Re-Order Point)
SCM 供應鏈管理 (Supply Chain Management)
SFC 現場控制 (Shop Floor Control)
SIS 策略資訊系統 (Strategic Information System)
SO 訂單(Sales Order)
SOR 特殊訂單需求(Special Order Request)
SOW 工作說明書(Statement of work)
SPC 統計製程管制 (Statistic Process Control)
TCO 整體擁有成本(Total cost of ownership)
TOC 限制理論 (Theory of Constraints)
TPM 全面生產管理(Total Production Management)
TQC 全面品質管制 (Total Quality Control)
TQM 全面品質管理 (Total Quality Management)
WIP 在製品 (Work In Process)

[技術] [轉錄]Android 內核的簡單分析

Written on 1:38 上午 by Yu Lai

From: http://www.cnmsdn.com/html/201002/1266986960ID865.html

在kernel子目錄下存放的就是Android的Linux Kernel了, 通過和標準的Linux 2.6.25 Kernel的對比,我們可以發現,其主要增加了以下的內容:

  1. 基於ARM架構增加Gold-Fish平台,相應增加的目錄如下:

  kernel/arch/arm/mach-goldfish

  kernel/include/asm-arm/arch-goldfish

  Gold-Fish平台採用的是ARM926T CPU作為BaseBand處理器, 該CPU主頻至少為200M HZ. 採用MSM7201A CPU(ARM 11)作為主CPU, 其主頻為528M HZ.

  2. 增加了yaffs2 FLASH文件系統,相應增加的目錄為:

  kernel/fs/yaffs2

  實際上,Android包經過編譯後生成的system.img和ramdisk.img文件就是yaffs2格式的包.

  3. 增加了Android的相關Driver,相應目錄為:

  kernel/drivers/android

  主要分為:

  Android IPC系統: Binder

  Android 日誌系統: Logger

  Android 電源管理: Power

  Android 鬧鐘管理: Alarm

  Android 內存控制台: Ram_console

  Android 時鐘控制的gpio: Timed_gpio

  4. 增加了switch處理, 相應的目錄為:

  kernel/drivers/switch/

  5. 增加了一種新的共享內存處理方式, 相應增加的文件為:

  kernel/mm/ashmem.c

  6. 其他為Linux-2.6.25內核所做的補丁等等,例如BlueTooth, 在此不做詳細分析

  另外GoldFish平台相關的驅動文件如下:

  1. 字符輸出設備:

  kernel/drivers/char/goldfish_tty.c

  2. 圖像顯示設備: (Frame Buffer)

  kernel/drivers/video/goldfishfb.c

  3. 鍵盤輸入設備:

  kernel/drivers/input/keyboard/goldfish_events.c

  4. RTC設備: (Real Time Clock)

  kernel/drivers/rtc/rtc-goldfish.c

  . USB Device設備:

  kernel/drivers/usb/gadget/android_adb.c

  6. SD卡設備:

  kernel/drivers/mmc/host/goldfish.c

  7. FLASH設備:

  kernel/drivers/mtd/devices/goldfish_nand.c

  kernel/drivers/mtd/devices/goldfish_nand_reg.h

  8. LED設備:

  kernel/drivers/leds/ledtrig-sleep.c

  9. 電源設備:

  kernel/drivers/power/goldfish_battery.c

  10. 音頻設備:

  kernel/arch/arm/mach-goldfish/audio.c

  11. 電源管理:

  kernel/arch/arm/mach-goldfish/pm.c

  12. 時鐘管理:

  kernel/arch/arm/mach-goldfish/timer.c