Asus是在驅動程式上面非常不用心的公司,
驅動程式鮮少在更新,而且散成一團,每次都要一個一個安裝(哀...雖然我知道驅動都是供應商寫的..但還是希望ATK合起來),
所以每當在新作業系統快出的曖昧期,買到它的筆電真的很吐血,
Windows7都出多久了F8sp驅動程式連動都沒動,
偏偏比較新的F8vr有win7x64的驅動(幾乎一樣的晶片跟組件...這...資料庫關聯性真的很差),
不過說真的幹嘛手賤,要安裝windows7 x64,好好用xp就天下太平,不是嗎? XD
剛開始有點怕怕滴..
怕有些驅動程式會互相衝突,畢竟是自己到處搜刮來的,不是Asus驗證過的驅動,
好家在, 安裝完沒啥大問題,不過有幾個注意事項;
1. Microsoft update裡的驅動有三個不要安裝
a. ATI顯示驅動
b. ITE紅外線驅動
c. Ricoh xD讀卡機驅動
2. Microsoft update裡面需要安裝的驅動
a. Realtek Ethernet驅動
b. AuthenTec指紋Sensor驅動
c. Motorola modem驅動
3. 以下需要下載安裝的驅動
a. 怨念超深ATK系列
- AGFNEX_WIN7_32_WIN7_64_1000008
- ATK_Hotkey_Win7_32_64_100053
- ATKDrv_V104321575_Win7_64
- ATKOSD2_WIN7_32_WIN7_64_700006
b. 非常無言的無線網路開關驅動,做個硬體開關會死嗎?
- Wireless_Console_Win7_32_64_2010
c. 花俏不實用的電源管理
- Power4Gear_Hybrid_WIN7_64_110019
d. 鍵盤相關驅動?
- KBFilter_WIN7_64_1003
e. 觸控板驅動
- Synaptics_v14_0_3_C_XP64_Vista64_Win7-64_Signed_default
f. AMD HD3650驅動
- AMD官方網站下載最新版本
g. Realtek驅動
- High Definition Audio Codecs
- Realtek PCIe GBE Family Controller
g. ITE 紅外線接收器驅動(千萬別亂裝.. 只有這一版能夠真正驅動)
- ITE_Romote_VT
h. Ricoh讀卡機驅動
- CardReader_Ricoh_WIN7_32_WIN7_64_36202
i. CAMERA驅動(注意一下! Asus F8sp的供料廠商有兩間.. 所以不一定是D-MAX)
- Camera_D-MAX_Win7_32_64_721701
j. TPM信任模組驅動
- TPM_Infineon_WIN7_64_36
k. 藍芽驅動(使用Microsofe內建)
安裝Windows7 64後的效能評等
ATI HD3650 1GB的桌面效能這麼低弱? 呵
安裝完成後其實發現很多驅動還是x32的驅動,不過現階段先不管這麼多,以後有出在做更換。
2010年12月8日 星期三
2010年11月9日 星期二
Altera FTP的隱藏目錄
鑑於最近
Altera_installer_rev2
莫名其妙都不會動,實在太@#$@#$
只好再把以前的技倆搬出來,用ftp多線程下載(altera: 哭哭)
ftp://ftp.altera.com/outgoing/release/
裡面有所有版本的Altera軟體
Altera_installer_rev2
莫名其妙都不會動,實在太@#$@#$
只好再把以前的技倆搬出來,用ftp多線程下載(altera: 哭哭)
ftp://ftp.altera.com/outgoing/release/
裡面有所有版本的Altera軟體
C語言讀寫BMP影像檔
[Introduction]
撰寫視窗軟體時應該是沒有如此的煩惱,因為bcb, vc++都有提供視覺化元件可以使用,但是對於開發演算法以及產生test pattern時根本不需要圖形化介面,或者是嵌入式系統在開發時需要使用semihosting輸出影像時,這時要開圖檔或者寫圖檔都是件麻煩事。而bmp是一個最簡單的泛用圖檔格式,但是又不須像raw一樣,需要設定長寬大小,只要點兩下馬上看得到結果。對於嵌入式系統或者vlsi相關的設計,有很大的幫助。因此這邊簡單寫一個讀寫bmp的函式。
[Article]
BMP檔案格式,由bmpheader與image array兩個部份組成。
bmp header通常長度為58byte,所以也可以值些忽略前面的部份,讀取影像的資料,但是為了寫回電腦時還是一樣是bmp檔,所以還是需要把header記下來,先宣告一個結構(struct)來存放header資料,
讀完header後,取出width與height,由於一個pixel有rgb三個pixel,算影像大小的公式為width*height*3,再與(filesize-bitmap_dataoffset)比較看看是否相等,判斷大小是否有算錯,
下面是讀取bmp的函式
但是要注意一點,BMP擺放影像是上下顛倒所以要記得將影像轉回來,不然存出來的圖會是顛倒的。
撰寫視窗軟體時應該是沒有如此的煩惱,因為bcb, vc++都有提供視覺化元件可以使用,但是對於開發演算法以及產生test pattern時根本不需要圖形化介面,或者是嵌入式系統在開發時需要使用semihosting輸出影像時,這時要開圖檔或者寫圖檔都是件麻煩事。而bmp是一個最簡單的泛用圖檔格式,但是又不須像raw一樣,需要設定長寬大小,只要點兩下馬上看得到結果。對於嵌入式系統或者vlsi相關的設計,有很大的幫助。因此這邊簡單寫一個讀寫bmp的函式。
[Article]
BMP檔案格式,由bmpheader與image array兩個部份組成。
bmp header通常長度為58byte,所以也可以值些忽略前面的部份,讀取影像的資料,但是為了寫回電腦時還是一樣是bmp檔,所以還是需要把header記下來,先宣告一個結構(struct)來存放header資料,
typedef struct _lbheader{ unsigned short identifier; // 0x0000 unsigned int filesize; // 0x0002 unsigned int reserved; // 0x0006 unsigned int bitmap_dataoffset; // 0x000A unsigned int bitmap_headersize; // 0x000E unsigned int width; // 0x0012 unsigned int height; // 0x0016 unsigned short planes; // 0x001A unsigned short bits_perpixel; // 0x001C unsigned int compression; // 0x001E unsigned int bitmap_datasize; // 0x0022 unsigned int hresolution; // 0x0026 unsigned int vresolution; // 0x002A unsigned int usedcolors; // 0x002E unsigned int importantcolors; // 0x0032 unsigned int palette; // 0x0036 } __attribute__((packed,aligned(1))) lbheader;記住gcc有資料格式對齊的考量,為了到時後讀檔方便,所以加入__attribute__((packed,aligned(1))),強制gcc把結構作緊密排列,這樣是為了到時候讀取資料時可以直接使用指標來擺放資料,就不需要一筆一筆去指定資料。
lbheader hbmp; unsigned char* ptr; ptr = (unsigned char *)&hbmp; fread(ptr, sizeof(unsigned char), sizeof(lbheader), fp);像這樣開始讀取檔案的58byte,直接使用unsigned char型態指標從結構開始位址開始寫入,數值就會按照位置擺入結構中。
讀完header後,取出width與height,由於一個pixel有rgb三個pixel,算影像大小的公式為width*height*3,再與(filesize-bitmap_dataoffset)比較看看是否相等,判斷大小是否有算錯,
下面是讀取bmp的函式
int readbmp(char* filename, lbheader& hbmp, int mode, unsigned char* buffer) { FILE* ifp; char c[128]; unsigned char* ptr; sprintf(c, "./result/%s.bmp", filename); ifp = fopen(c, "rb"); if(ifp==NULL){ printf("readbmp: file open error\n"); return -1; } ptr = (unsigned char *)&hbmp; fread(ptr, sizeof(unsigned char), sizeof(lbheader), ifp); if(mode==1){ fread(buffer, sizeof(unsigned char), (hbmp.width*hbmp.height*3), ifp); } else{ fclose(ifp); return (hbmp.width*hbmp.height*3); } fclose(ifp); return 1; }要讀取影像時要先知道影像大小,以便宣告足夠的記憶體空間,所以要呼叫兩次readbmp(),一次先取到header,第二次才真的取影像資料,
// 先宣告指標與結構 unsigned char* bimage; lbheader bmpinfo; // 取得適當大小的陣列 bimage = (unsigned char *)malloc(sizeof(unsigned char)*readbmp("2", bmpinfo, 0, bimage)); // 讀取影像 readbmp("2", bmpinfo, 1, bimage);寫入bmp的function。
int writebmp(char* filename, lbheader hbmp, unsigned char* buffer) { FILE* ofp; char c[128]; unsigned char* ptr; sprintf(c, "./result/%s.bmp", filename); ofp = fopen(c, "wb"); if(ofp==NULL){ printf("writebmp: file open error\n"); return -1; } ptr = (unsigned char *)&hbmp; fwrite(ptr, sizeof(unsigned char), sizeof(lbheader), ofp); fwrite(buffer, sizeof(unsigned char), (hbmp.width*hbmp.height*3), ofp); fclose(ofp); return 1; }
但是要注意一點,BMP擺放影像是上下顛倒所以要記得將影像轉回來,不然存出來的圖會是顛倒的。
2010年10月20日 星期三
DE2-115 開箱
[Introduction]
大概9月初就拿到DE2-115這個新玩具,忙到最近才有空拿出來,照幾張開箱照,給想買的同學參考。
[Article]
這一次的外盒頗有設計感
表面看來大致上與DE2-70相仿,但是仔細看有許多地方不盡相同,其實有不少的改變。最明顯的是GPIO已經被換成HSMC的介面,也有將JTAG chain加入,將可以串接FPGA,一起燒綠,並高速交換資料。
這一次友晶的配件多附贈一個紅外線的搖控器,這樣就不需要到處去尋覓合適的配件。
DE2-115改採用CycloneIV的Device,容量上有不少的增進,速度時脈也有提升,SDRAM也倍數增加到128MB(64MB*2),但是可以注意到PCB的LAYOUT,兩顆SDRAM的位址與控制線都被接在一起,所以只能當作32bit的SDRAM來使用,要分該用應該很難了。 SRAM的部分,從SSRAM換成較好操作的2MB SRAM。Flash的部分LAYOUT也有修改,以往採用16-bit的資料線,現在改成8-bit,所以要注意一下位址線的用法不同。
Ethernet從常見的DM9000A,換成兩顆giga等級的Ethernet
一改之前的linear的解決方案,改用National的解決方案,個人覺得還是Linear的方案比較簡潔。 這一次提供兩組JP,供使用者改變GPIO與HSMC的電壓準位,
最後側面來一張
滿是灰塵的DE2-70,但是想退休還早得很
大概9月初就拿到DE2-115這個新玩具,忙到最近才有空拿出來,照幾張開箱照,給想買的同學參考。
[Article]
DE2-115外盒 |
DE2-115 實驗板 |
DE2-115 下層內容物 |
CycloneIV 與記憶體們 |
GigaByte的Ethernet |
電源 |
側面 |
辛勞的DE2-70 |
2010年10月17日 星期日
SyntaxHighlighter加入TCL Brush
[Introduction]
續"SyntaxHighlighter加入Verilog Brush",
增加TCL Brush。
[shBrushTcl.js]
Download
[TCL Example]
續"SyntaxHighlighter加入Verilog Brush",
增加TCL Brush。
[shBrushTcl.js]
Download
[TCL Example]
#** OpenPPM -- opens and reads a PPM file #** proc OpenPPM {} { global readimg set types { {{PPM Files} {.ppm}} {{All Files} * }} set fname [tk_getOpenFile -defaultextension ".ppm" -filetypes $types] if {$fname == ""} return #::img::current config -file $fname $readimg config -file $fname }
標籤:
SyntaxHighlighter,
TCL
SyntaxHighlighter中加入Verilog Brush
[Introduction]
SyntaxHighlighter中預設沒有提供,
a. Verilog
b. VHDL
c. TCL
這三種設計數位電路常用的語言,因此必須依照SyntaxHighlighter的框架,
編寫shBrushVerilog.js加入\syntaxhighlighter_3.0.83\scriptsscripts資料夾中。
SyntaxHighlighter色碼代號
[shBrushVerilog.js]
剛開始可以使用shBrushCpp.js當作範本來修改,
兩個主要的工作,
a. 編輯shBrushVerilog.js。
b. 加入註冊shBrushVerilog.js的script加入到Blogger的範本中,即可使用。
[Verilog Example]
SyntaxHighlighter中預設沒有提供,
a. Verilog
b. VHDL
c. TCL
這三種設計數位電路常用的語言,因此必須依照SyntaxHighlighter的框架,
編寫shBrushVerilog.js加入\syntaxhighlighter_3.0.83\scriptsscripts資料夾中。
SyntaxHighlighter色碼代號
- comments
- keyword
- string
- preprocessor
- variable
- value
- functions
- constants
- script
- color1
- color2
- color3
[shBrushVerilog.js]
剛開始可以使用shBrushCpp.js當作範本來修改,
兩個主要的工作,
a. 編輯shBrushVerilog.js。
b. 加入註冊shBrushVerilog.js的script加入到Blogger的範本中,即可使用。
/** * Tun-Kai Yao * tunkai.yao@gmail.com * * @ SyntaxHighlighter version * 3.0.83 (July 02 2010) * * @copyright * Copyright (C) 2004-2010 Alex Gorbatchev. * * @license * Dual licensed under the MIT and GPL licenses. */ ;(function() { // CommonJS typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null; function Brush() { // 字集 // 資料型態 var datatypes = 'reg wire ' + 'integar unsigned ' + 'tri wand triand tri0 tri1 trireg supply0 supply1 '; // 基本元件 var primitives = 'and nand or nor xor xnor ' + 'buf not ' + 'bufif0 bufif1 notif0 notif1 ' + 'pullup pulldown ' + 'pmos rpmos nmos rnmos '; // 關鍵字 var keywords = 'module endmodule ' + 'input output inout ' + 'begin end ' + 'parameter defparam ' + 'assign deassign always initial genvar ' + 'forever repeat disable wait ' + 'function endfunction' + 'task endtask ' + 'generate endgenerate ' + 'specify endspecify ' + 'posedge negedge ' + 'if else for while ' + 'case casex casez endcase default ' + //'include timescale ' + //'ifdef endif ' + 'celldefine endcelldefine ' + 'attribute ' + 'specparam event' + 'fork join '; // Tasks var sysTasks = '$display $monitor $dumpall $dumpfile $dumpflush ' + '$dumplimit $dumpoff $dumpon $dumpvars $fclose ' + '$fdisplay $fopen $finish $fmonitor $fstrobe ' + '$fwrite $fgetc $ungetc $fgets $fscanf $fread ' + '$ftell $fseek $frewind $ferror $fflush $feof ' + '$random $readmemb $readmemh $readmemx $signed ' + '$stime $stop $strobe $time $unsigned $write'; // 著色 this.regexList = [ { regex: SyntaxHighlighter.regexLib.singleLineCComments, css: 'comments' }, // one line comments { regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, // multiline comments { regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // strings { regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // strings { regex: /\b([\d]+(\.[\d]+)?|0x[a-f0-9]+)\b/gi, css: 'constants' }, // value { regex: /^ *#.*/gm, css: 'preprocessor' }, // #10 { regex: /^ *`.*/gm, css: 'preprocessor' }, // `timescale { regex: new RegExp("[0-9]+['][bBoOdDhHeEfFtT][0-9a-fA-FzZxX_]+", 'g'), css: 'constants' }, { regex: new RegExp(this.getKeywords(datatypes), 'gm'), css: 'color2 bold' }, { regex: new RegExp(this.getKeywords(primitives), 'gm'), css: 'color3 bold' }, { regex: new RegExp(this.getKeywords(sysTasks), 'gm'), css: 'functions bold' }, { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword bold' } ]; }; Brush.prototype = new SyntaxHighlighter.Highlighter(); // 註冊 verilog 標籤 Brush.aliases = ['verilog']; SyntaxHighlighter.brushes.Verilog = Brush; // CommonJS typeof(exports) != 'undefined' ? exports.Brush = Brush : null; })();
[Verilog Example]
/* verilog */ `timescale 10/10 module rpa( rpa_i_a, rpa_i_b, rpa_i_ci, rpa_o_s, rpa_o_co ); input rpa_i_a; input rpa_i_b; input rpa_i_ci; output rpa_o_s; output rpa_o_co; assign {rpa_o_co, rpa_o_s} = rpa_i_a + rpa_i_b + rpa_i_ci; //test code reg [15:0] testa; wire [15:0] testb; assign testa = 16'b0; assign testb = 16'h0; always@(posedge clk or negedge rst) begin if(!~rst) begin end else begin end end endmodule
標籤:
SyntaxHighlighter,
Verilog
2010年10月16日 星期六
Blogger加入SyntaxHighlighter樣式
Source Link: SyntaxHighlighter
(一) 修改Blogger樣式
1.下載SyntaxHighlighter樣式, 下載連結 (版本 3.0.83)
2. 將SyntaxHighlighter解壓,並放入webserver (或者使用作者所提供的空間)
3. 加入javascript與css到Blogger範本 <b:skin> 標籤之前
4. Blogger範本</body>前呼叫
a.
b.
(一) 修改Blogger樣式
1.下載SyntaxHighlighter樣式, 下載連結 (版本 3.0.83)
2. 將SyntaxHighlighter解壓,並放入webserver (或者使用作者所提供的空間)
3. 加入javascript與css到Blogger範本 <b:skin> 標籤之前
4. Blogger範本</body>前呼叫
5. 文章中插入程式碼的呼叫方式
a.
<pre class=
"brush: js"
>
/**
* SyntaxHighlighter
*/
function
foo()
{
if
(counter <= 10)
return
;
// it works!
}
</pre>
b.
<
script
type
=
"syntaxhighlighter"
class
=
"brush: js"
>
<![CDATA[
/**
* SyntaxHighlighter
*/
function foo()
{
if (counter <= 10)
return;
// it works!
}
]]>
</
script
>
訂閱:
文章 (Atom)