2012年4月30日 星期一

內存越界檢查 -- GFLAGS

todo: 要使用windows 32 bit 測試,64bits的行為看來併不正常

內存越界檢查 -- GFLAGS

1. 下載 gflags 程式
此程式屬於 Debugging tools for windows的一部分,可選擇下載路徑進行下載。我的電腦因為已經安裝 WinDDK(Windows Driver Development Kit), 所以裡面已經有此程式了,程式所在路徑如下: C:\WinDDK\7600.16385.1\Debuggers

2012年4月29日 星期日

安控廠商 -- Ambarella

最近接觸的一個產品使用了安霸 Ambarella的晶片 A5S,因此此篇文章整理了此公司的相關資訊。

安霸股份有限公司為一半導體設計公司,2004年2月由美國哥倫比亞大學電機工程博士王奉民與多位在影像處理與編碼之半導體領域的專業研發人員正式成立於美國矽谷,並於同年10月進駐台灣新竹科學園區。

安霸主要提供低功耗、超高畫質影音壓縮與影像處理半導體的解決方案,包括全球專業電視影像傳輸系統、消費性多功能數位照相攝錄影機與安全監控攝影機的頂尖處理器,以滿足新世代消費性電子產品之需求。

目前在日本、韓國、香港、大陸、美國皆有辦公室。公司主力產品是數位相機與攝錄影機或安控監視器的單晶片解決方案,近三年的主要產品線如下:

[NEWS] NVR的發展趨勢及展望



http://www.asmag.com.tw/article/article_detail.aspx?aid=7841

NVR的發展趨勢及展望

作 者:
隨著網路影像產品持續熱賣,市場對NVR的需求也有增無減。於是,各監控廠商紛紛針對自身優勢,推出不同類型的NVR產品,比如嵌入式NVR、Hybrid NVR、NVR軟體產品等等。NVR為什麼會出現?目前市場有哪些爭議?未來的發展趨勢及展望如何?
網路影像監控掀起NVR需求當全球第一台網路攝影機誕生,處理網路攝影機影像訊號的網路影像軟體(IP Video Software),也隨之出現。儘管業內CCTV大廠之後陸續推出搭配的NVR主機,但由於當時前端產品的市場不大,所以NVR的出貨量仍佔少數。
直到2007年,經過多年的市場教育,以及網路頻寬條件的改善,網路影像產品的出貨量,才開始明顯成長。據統計,網路影像監控市場在當年的成長率,達到40%以上。因此,很多人也將這一年,稱為IP Surveillance(網路影像監控)元年。隨著網路影像產品熱賣,市場對NVR的需求開始逐步攀升。

NVR 實作探討


NVR(Network Video Recorders),是一個以網際網路協定(Internet Protocol)為基礎的網路設備,其相關運作全部基於IP架構。

NVR的功能

一般NVR應該會具備以下功能:
  • 錄製監控視訊
  • 錄音
  • 遠端控制介面,提供遠端控制中心透過網路連接。
  • 作業系統:少數會採用嵌入式系統,多數NVR會採取支援Windows或Linux系統的策略,以增加系統未來的擴充彈性。
  • 外殼:1U尺寸的機架式設計架構,以方便機房架設。
可能會具備的功能
  • 防火牆
  • 可熱插拔的磁碟管理系統
  • 影像的浮水印
  • 硬碟溫度保護機制
  • USP不斷電系統整合等
  • 乙太網供電(PoE: Power over Ethernet, 最大電流為550mA),PoE可協助將成本降至最低(約整體系統線路70%)

2012年4月25日 星期三

OBjectC筆記 -- @property 和 @synthersize

最近終於有點時間,可以寫一個屬於自己的應用程式了。打開了久違的Xcode之後,發現程式碼怎麼看起來都有點陌生呢?? 所以只好把 Object C的重點重新整理一遍囉。

首先介紹的是 @property and @syntherize,其功能就是由 xcode 幫忙產生 setter and getter
原文:@property and @syntherize are what are know as prepocessor macros, which is to say that when you hit "Build and Run" in xcode it knows to replace @property with some prewritten/preformatted block of code

2012年4月24日 星期二

[NEWS] 台灣安控公司2012年第一季營業額


來源:http://3smarket-info.blogspot.com/2012/04/blog-post_19.html

台灣安控上市興櫃公司 2012年第一季營業額統計

【3S Market】

單位:新台幣千元
備註: 以上資料統計來源取自奇摩股市及必富網

2012年4月19日 星期四

CUnit 筆記


CUNIT是一個C語言的單元測試架構,使用者可以撰寫C語言,進行以下四種測試方式。由於筆者只需要使用Console方式測試,因此後續的編譯與使用方式都只針對Console整理
l   Automated      non-interactive with output to xml files
l   Basic        non-interactive with optional output to stdout
l   Console   interactive console mode under user control
l   Curses     interactive curses mode under user control

使用CUnit函數庫

一、直接使用CUNIT library
取得程式碼,下載連結為 http://sourceforge.net/projects/cunit/ 
Win7 64bit為例,安裝好MinGW Shell之後,執行 “configure”,接著執行 “make” 即可。編譯好的函數庫會放在 \CUnit-2.1-2\CUnit\Sources\.libs\libcunit.a。其他Unix based的作業系統,編譯方式應該也相同。
以 Linux 為例,其作法如下
1. aclocal  (if necessary)
2. autoconf (if necessary)
3. automake --add-missing (if necessary)
4. chmod u+x configure (if necessary)
5. ./configure --prefix=/usr
6. make
7. sudo make install
若使用較新版本的 automake,可能需要加上下列幾個指令 libtoolize, autoheader

2012年4月11日 星期三

SONY FCB-EH6300 初始化流程



使用FCB-Control-HD軟體,控制 FCB-EH6300監控器材,在其初始化過程中會先查詢鏡頭的各項資訊,接著再設定以下數值:
  • CAM_NR
  • CAM_Alarm
  • CAM_RegisterValue
  • CAM_ColorEnhance
  • CAM_ChromaSuppress

2012年4月10日 星期二

linker script 舉例說明 (FreeRTOS)


當燒錄ELF file到對應的硬體時,需要參考 linker script 以決定該如何安排各個區域所在的位置。

// 1. 指定多個輸入檔案,輸入的檔案必須已經包裝成函數庫,而且他們會被重複搜尋直到沒有新的定義值出現
GROUP(libcr_c.a libcr_semihost.a libcr_eabihelpers.a)

// 2. 根據所使用的硬體,進行記憶體配置
MEMORY
{
  /* Define each memory region */
  MFlash32 (rx) : ORIGIN = 0x0, LENGTH = 0x8000 /* 32k */
  RamLoc8 (rwx) : ORIGIN = 0x10000100, LENGTH = 0x1F00 /* 8k-256bytes */
}
  // 定義記憶體的邊界值
  __top_MFlash32 = 0x0 + 0x8000;
  __top_RamLoc8 = 0x10000100 + 0x1F00;

2012年4月5日 星期四

CGI環境架設


前幾天才剛剛將libvisca編譯完成,並且與開發版測試無誤,現在正準備要開發一個可以跨平台的測試介面,以利後續QA方便測試並驗證產品。鑑於監控產業的使用介面都是採用網頁的方式,因此將會建立一個 CGI 開發環境,並利用已撰寫好的C library,實作一個web-based的測試程式。

台灣的手機晶片公司


自從恆通高科遣散所有員工之後,許多老同事都紛紛轉向其他的手機晶片公司,不免讓我好奇這些公司究竟有哪些特殊的吸引力,能夠吸引這麼多人才前仆後繼的為它們效力。


2012年4月4日 星期三

semihosting


Semihosting(半主機)

What is semihosting?

使用ARM所開發的目標系統(target system),不一定會提供所有的輸入/輸出設備。因此ARM公司設計了Semihost這種機制,讓運行ARM debugger的主機可以與目標系統進行I/O溝通,以利產品開發。例如:可以透過呼叫printf()將資料列印到主機螢幕,而呼叫scanf()可以讀取主機鍵盤的輸入。如下圖: