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)
