Tag Archives: arm

[跟風] 程式設計師, 你調試過最難的 BUG

看到一篇文章
簡體中文翻譯: 程序员,你调试过的最难的 Bug 是?
原文: What’s the hardest bug you’ve debugged?

看原文比翻譯好一點, 從原文大概只可能猜出, 改過 timer 之後, 可能影響到 interrupt 的速度.
但是從最後的描述猜也可能是動到 clock tree 去影響 timer 進而影響到其他的行為.
有碰到這種 BUG 的第一個一定先猜 timing , 純軟體的反而不會這樣想, 所以他覺得最難的 BUG
我們看起來就還好.

這個描述讓我也想寫一下, 我碰過最難的 BUG.
Read more »

ARM NEON memcpy

FourDollar 在 Plurk 上提到的, NEON 是 SIMD 的指令, 可以同時做矩陣運算, 拿來做一些記憶體搬移和運算都會比較快.
VFP 是 SIMD 的指令, 不過背後是循序運算, 還是比 CPU 快, 但是相對上不會比較快.

Added NEON optimized memcpy + armv6 unaligned memory access.
imx-libc-neon / memcpy-neon.S
改善 Android 中 memcpy 效能
ARM: NEON optimized implementation of memcpy.
http://sourceware.org/ml/libc-ports/2009-07/msg00000.html

之前有碰過 DMA 搬 Data 和 CPU 搬速度差不多的狀況.
看起來拿閒置的 NEON 來用也是不錯的.
但是 NEON dimension 太大, 如果不是有關影像處理, 只拿來做 data copy 就有點浪費了.

Update:
NEON 是要配合 prefetch 才會快, 如果沒有 prefetch 是差不多的, 和我之前的認知類似.

如何確認 uclibc 是有 VFP 最佳化的?

這標題隨便下的, 只是一個筆記的 Note.
Read more »

Patch RVDS 4.0 at Linux

在 Linux 上上 RVDS 4.0 的 Patch Command 如下


# ~/ARM/bin/linux-pentium/setuplinux.bin patch --source RVDS_4_0_dist_to_4-all-all_stnd.armpatch --target ~/ARM

Boot Monitor Flash 基本操作

ARM PB11MPCore Boot Monitor
Version:    V4.1
Build Date: Oct 24 2007
Tile Site : Tile Not Fitted
Endian:     Little
K:\>

Read more »

[ARM][Linux] 建立 ARM 平台的 Debian System

在 Embedded system 下, 使用現有的系統驗證 SoC 功能是非常棒的.
最大的好處就是不用到處找工具編一堆有的沒有的, 時間可以花在更重要的地方

像我將 debian 裝好之後, 就可以跑 wireshark 了

本圖中, 最左邊的是 console, 中間的視窗是 EVB 上的 wireshark, 右邊的視窗是 PC 端的 wireshark
使用 wireshark *2 debug tcp stream

真是超好用的……

Read more »

Linux kernel PCI Domains Support for ARM

Linux kernel 支援不同 domain 的 PCI, 看起來是 ACPI 的功能之一.
其他平台看起來也有支援, 像是 sparc or mips 都有.

但是在 ARM 上並沒有這樣的支援

我的平台有 2 個 PCIe Host Controller , 而且都要設定在 PCIe bus 0 上面.
這時就拿 PCI domain 的 code 來用最快,
以下就是 Sample Code 和 ARM 部份的 Patch Code (不含我目前使用平台的 Patch)

Read more »

ARM 的 Oprofile

最近在弄 ARM11 的 Oprofile, 結果發現執行 opcontrol 的動作之後, 沒有 log 的動作.
大致上的訊息是這樣的

# opcontrol --shutdown
Stopping profiling.
Killing daemon.
# Stopping profiling.
Killing daemon.
opreport image:/vmlinux -l -w -g > oprofile.txt
error: no sample files found: profile specification too strict ?

這時請改用 timer interrupt

在 load oprofile modules 加上 timer=1
若是 static link 時, 就要在 boot_cmd 加上 oprofile.timer=1

似乎目前的 kernel oprofile 不支援 ARM11MPCore.

http://oprofile.sourceforge.net/doc/detailed-parameters.html#timer

Sharp ARM Base Netbook PC-Z1 NetWalker

最近 Sharp 開始出售第一台 ARM Base 的 Netbook , 取名 NetWalker
不過說他是 Netbook 我個人覺得這一台的定位比較像是放在比電子字典更強一點點的功能.
Sharp PC-Z1
Read more »

htop cross compile 碰到 undefined references to `rpl_malloc’

Cross compile htop 碰到的錯誤訊息.

undefined references to `rpl_malloc’

下這行指令就好了
# ac_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes ./configure –with-gnu-ld –host=arm-linux