導航:首頁 > 源碼編譯 > aml編譯asl

aml編譯asl

發布時間:2022-07-10 03:26:56

⑴ iDSDT編譯aml時錯誤,求助大神修復

IDSDT的編譯器太老了,建議換成最新的編譯器編譯,然後手工加入代碼,IDSDT的作用僅限於參考價值。英特爾已經發布了支持ACPI規范5.0的IASL編譯器。
具體參考英特爾對新版本編譯器的改進說明PDF文檔,英特爾官網有介紹。

⑵ 誰能幫我把dsdt.dsl編譯成dsdt.aml

論壇上隨處可見。到處充斥著修改dsdt的軟體。比如。 dsdt auto pactor(但其中有好多壇友提出,自己的主板型號裡面都沒有)。dsdt se (此軟體集修改和修復於一身,我也漢化dsdt se了一下,下面有下載地址)。還有dsdt edit& auto fix/patcher

⑶ 高手請進 Ubuntu 14.04系統下怎麼提取dsdt.aml文件

首先,dsl是源代碼文件,aml是二進制文件。二進制文件,是機器能直接執行的。其次,當源代碼仍存在錯誤時,一般是不允許保存為二進制文件的,因為錯誤使得源代碼不能編譯為二進制,所以在仍然存在錯誤時,不能保存為aml。再者,一般情況下,軟體提取到的是二進制文件,即aml,再由軟體反編譯回到源代碼,展現在我們面前(可以視為變回了dsl)。即軟體把它又變了回去,但是,在變的過程中,可能出現錯誤,於是,就不能再編譯到二進制,即不能保存為aml。對於你的問題:1、沒有錯誤的aml是二進制文件。是機器能直接執行的。可以直接放到clover/acpi/patched/下面。2、在DSDT仍然存在錯誤時,不能保存為aml,只有修改所有錯誤(警告和提醒不影響),使得編譯通過,才能保存為aml。

⑷ 急求用單片機 AT89C52 74LS164驅動的四位一體共陰數碼管從0000~9999循環循環累加顯示的程序

怎麼就非要74S164的呢,我沒小時間給你寫,這里我發一個用74H573的時鍾程序給你參考,
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar aa,h,hh,hl,m,mh,ml,s,sh,sl,ah,am,as,
ahh,ahl,amh,aml,ash,asl,a,b,c;
sbit la=P2^6;
sbit wela=P2^7;
sbit dian=P0^7;
sbit fm=P2^3;
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
sbit d1=P1^0;
uchar code table[]={ 0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
void display(uchar hh,uchar hl,uchar mh,uchar ml,uchar sh,uchar sl);//顯示函數
void delay(uint z) ;//延時函數
void init() ;//初始化話函數
void chan();//調時函數
uchar alarm(uchar ah,uchar am);//調鬧鈴函數
uchar trans(uchar h,uchar m,uchar s);//顯示轉換函數
void time(); //時間函數
void main()
{
init(); //初始化
while(1)
{
alarm(); //調鬧鍾
chan(); //調時
time(); //時間
if(ah==h&&am==m)
{
if(s%2==0)
fm=0;
else
fm=1;
}
if(!(ah==h&&am==m))
fm=1;
}
}

uchar trans(uchar h,uchar m,uchar s)//時間轉換
{
//a=h;
//b=m;
//c=s;
hh=h/10;
hl=h%10;
mh=m/10;
ml=m%10;
sh=s/10;
sl=s%10;
return (hh,hl,mh,ml,sh,sl) ;
}

void time()//時間函數
{
if(aa==20)
{
aa=0;
s++;
//fm=1;
if(s==60)
{
s=0;
m++;
if(m==60)
{
m=0;
h++;
if(h==24)
h=0;
}
}
}
trans(h,m,s);
display(hh,hl,mh,ml,sh,sl);
//return (h,m,s);
}

void chan() //調時行數
{
if(key1==0)
{
h++;
delay(200);
if(h==24)
h=0;
}
if(key2==0)
{
m++;
delay(200);
if(m==60)
{
m=0;
h++;
if(h==24)
h=0;
}
}
}

uchar alarm(uchar h,uchar m)//調鬧鍾函數
{
loop:if(key3==0)
{
while(1)
{

if(key1==0)
{
ah++;
delay(200);
if(ah==24)
ah=0;
}
if(key2==0)
{
am++;
delay(200);
if(m==60)
{
am=0;
ah++;
if(ah==24)
ah=0;
}
}
trans(ah,am,as);
display(hh,hl,mh,ml,sh,sl);
if(key4==0)
goto loop;
}
}
return (ah,am);
}

void delay(uint z) //延時函數
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

void display(uchar hh,uchar hl,uchar mh,uchar ml,uchar sh,uchar sl)//顯示函數
{
la=1;
P0=table[hh];
la=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delay(1);

la=1;
P0=table[hl];
dian=1;
la=0;
P0=0xff;
wela=1;
P0=0x7d;
wela=0;
delay(1);

la=1;
P0=table[mh];
la=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delay(1);

la=1;
P0=table[ml];
dian=1;
la=0;
P0=0xff;
wela=1;
P0=0x77;
wela=0;
delay(1);

la=1;
P0=table[sh];
la=0;
P0=0xff;
wela=1;
P0=0xef;
wela=0;
delay(1);

la=1;
P0=table[sl];
la=0;
P0=0xff;
wela=1;
P0=0xdf;
wela=0;
delay(1);
}

void init() //初始化函數
{
wela=0;
la=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}

void timer0() interrupt 1 //中斷函數
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
}

⑸ 怎麼編譯DSL文件為AML文件

編譯DSL文件為AML文件:

1、利用編譯程序從源語言DSL文件編寫的源程序產生目標程序AML文件;

2、用編譯程序產生目標程序的動作。 編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。

編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優化;目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。

(5)aml編譯asl擴展閱讀:

編譯程序的語法分析器以單詞符號作為輸入,分析單詞符號串是否形成符合語法規則的語法單位,如表達式、賦值、循環等,最後看是否構成一個符合要求的程序;

按該語言使用的語法規則分析檢查每條語句是否有正確的邏輯結構,程序是最終的一個語法單位。編譯程序的語法規則可用上下文無關文法來刻畫。

語法分析的方法分為兩種:自上而下分析法和自下而上分析法。自上而下就是從文法的開始符號出發,向下推導,推出句子。

而自下而上分析法採用的是移進歸約法,基本思想是:用一個寄存符號的先進後出棧,把輸入符號一個一個地移進棧里,當棧頂形成某個產生式的一個候選式時,即把棧頂的這一部分歸約成該產生式的左鄰符號

⑹ 單片機數字時鍾系統設計利用6個7段數碼管顯示時間,分別用二個7段數碼管顯示時,分,秒,時按24小時計。。

PCB圖我就沒有隻有原理圖和程序。你要嗎?

⑺ 51單片機與ADXL345連接的硬體電路圖

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar aa,h,hh,hl,m,mh,ml,s,sh,sl,ah,am,as,
ahh,ahl,amh,aml,ash,asl,a,b,c;
sbit la=P2^6;
sbit wela=P2^7;
sbit dian=P0^7;
sbit fm=P2^3;
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
sbit d1=P1^0;
uchar code table[]={ 0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
void display(uchar hh,uchar hl,uchar mh,uchar ml,uchar sh,uchar sl);//顯示函數
void delay(uint z) ;//延時函數
void init() ;//初始化話函數
void chan();//調時函數
uchar alarm(uchar ah1,uchar am1);//調鬧鈴函數
uchar trans(uchar h,uchar m,uchar s);//顯示轉換函數
void time(); //時間函數
void main()
{
init(); //初始化
while(1)
{
alarm(); //調鬧鍾
chan(); //調時
time(); //時間
if(ah==h&&am==m)
{
if(s%2==0)
fm=0;
else
fm=1;
}
if(!(ah==h&&am==m))
fm=1;
}
}

uchar trans(uchar h,uchar m,uchar s)//時間轉換
{
//a=h;
//b=m;
//c=s;
hh=h/10;
hl=h%10;
mh=m/10;
ml=m%10;
sh=s/10;
sl=s%10;
return (hh,hl,mh,ml,sh,sl) ;
}

void time()//時間函數
{
if(aa==20)
{
aa=0;
s++;
//fm=1;
if(s==60)
{
s=0;
m++;
if(m==60)
{
m=0;
h++;
if(h==24)
h=0;
}
}
}
trans(h,m,s);
display(hh,hl,mh,ml,sh,sl);
//return (h,m,s);
}

void chan() //調時行數
{
if(key1==0)
{
h++;
while(key1==0);
if(h==24)
h=0;
}
if(key2==0)
{
m++;
while(key2==0);
if(m==60)
{
m=0;
h++;
if(h==24)
h=0;
}
}
}

uchar alarm(uchar ah1,uchar am1)//調鬧鍾函數
{
loop:if(key3==0)
{
while(1)
{

if(key1==0)
{
ah++;
while(key1==0);
if(ah==24)
ah=0;
}
if(key2==0)
{
am++;
while(key2==0);
if(am==60)
{
am=0;
ah++;
if(ah==24)
ah=0;
}
}
trans(ah,am,as);
display(hh,hl,mh,ml,sh,sl);
if(key4==0)
goto loop;
}
}
return (ah,am);
}

void delay(uint z) //延時函數
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

void display(uchar hh,uchar hl,uchar mh,uchar ml,uchar sh,uchar sl)//顯示函數
{
la=1;
P0=table[hh];
la=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delay(1);

la=1;
P0=table[hl];
dian=1;
la=0;
P0=0xff;
wela=1;
P0=0x7d;
wela=0;
delay(1);

la=1;
P0=table[mh];
la=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delay(1);

la=1;
P0=table[ml];
dian=1;
la=0;
P0=0xff;
wela=1;
P0=0x77;
wela=0;
delay(1);

la=1;
P0=table[sh];
la=0;
P0=0xff;
wela=1;
P0=0xef;
wela=0;
delay(1);

la=1;
P0=table[sl];
la=0;
P0=0xff;
wela=1;
P0=0xdf;
wela=0;
delay(1);
}

void init() //初始化函數
{
wela=0;
la=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}

void timer0() interrupt 1 //中斷函數
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
}

⑻ 求助 用C語言設計單片機動態掃描數字鍾 請給出詳細程序。

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar aa,h,hh,hl,m,mh,ml,s,sh,sl,ah,am,as,
ahh,ahl,amh,aml,ash,asl,a,b,c;
sbit fm=P1^7;
sbit dian=P2^7;
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
sbit d1=P1^0;
uchar code table[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void display(uchar hh,uchar hl,uchar mh,uchar ml,uchar sh,uchar sl);//顯示函數
void delay(uint z) ;//延時函數
void init() ;//初始化話函數
void chan();//調時函數
uchar alarm(uchar ah1,uchar am1);//調鬧鈴函數
uchar trans(uchar h,uchar m,uchar s);//顯示轉換函數
void time(); //時間函數
void main()
{
init(); //初始化
while(1)
{
alarm( ah, am); //調鬧鍾
chan(); //調時
time(); //時間
//if(a==h&&b==m)
//{
//if(s%2==0)
//fm=~fm;
//else
//fm=1;
// fm=~fm;
//}
//if(!(ah==h&&am==m))
//fm=1;
}
}

uchar trans(uchar h,uchar m,uchar s)//時間轉換
{

hh=h/10;
hl=h%10;
mh=m/10;
ml=m%10;
sh=s/10;
sl=s%10;
return (hh,hl,mh,ml,sh,sl) ;
}

void time()//時間函數
{
if(aa==20)
{
aa=0;
s++;
if(s==60)
{
s=0;
m++;
if(m==60)
{
m=0;
h++;
if(h==24)
h=0;
}
}
}
trans(h,m,s);
display(hh,hl,mh,ml,sh,sl);
//return (h,m,s);
}

void chan() //調時行數
{
if(key1==0)
{
h++;
while(key1==0);
if(h==24)
h=0;
}
if(key2==0)
{
m++;
while(key2==0);
if(m==60)
{
m=0;
h++;
if(h==24)
h=0;
}
}
}

uchar alarm(uchar ah,uchar am)//調鬧鍾函數
{

if(key3==0)
{
while(1)
{

if(key1==0)
{
ah++;
a=ah;
while(key1==0);
if(ah==24)
ah=0;
}
if(key2==0)
{
am++;
while(key2==0);
if(am==60)
{
am=0;
ah++;
if(ah==24)
ah=0;
}
b=am;
}
trans(a,b,as);
display(hh,hl,mh,ml,sh,sl);
if(key4==0)
break;

}
}
return 0;
}

void delay(uint z) //延時函數
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

void display(uchar hh,uchar hl,uchar mh,uchar ml,uchar sh,uchar sl)//顯示函數
{

P0=table[hh];
P2=0x01;
delay(2);
P0=0xff;

P0=table[hl];
dian=0;
P2=0x02 ;
delay(2);
P0=0xff;

P0=table[mh];

P2=0x04;
delay(2);
P0=0xff;

P0=table[ml];
dian=0;
P2=0x08;
delay(2);
P0=0xff;

P0=table[sh];
P2=0x10 ;
delay(2);
P0=0xff;

P0=table[sl];
P2=0x20;
delay(2);
P0=0xff;
}

void init() //初始化函數
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}

void timer0() interrupt 1 //中斷函數
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
if(a==h&&b==m) //以下部分為鬧鈴
{ c++;
if(0<=c<=5)
fm=~fm;
if(5<c<10)
fm=1;
if(10<=c<=15)
fm=~fm;
if(c==20)
c=0;
}
if(!(ah==h&&am==m))
fm=1;
}

閱讀全文

與aml編譯asl相關的資料

熱點內容
噴油螺桿製冷壓縮機 瀏覽:578
python員工信息登記表 瀏覽:376
高中美術pdf 瀏覽:160
java實現排列 瀏覽:512
javavector的用法 瀏覽:981
osi實現加密的三層 瀏覽:231
大眾寶來原廠中控如何安裝app 瀏覽:915
linux內核根文件系統 瀏覽:242
3d的命令面板不見了 瀏覽:525
武漢理工大學伺服器ip地址 瀏覽:148
亞馬遜雲伺服器登錄 瀏覽:524
安卓手機如何進行文件處理 瀏覽:70
mysql執行系統命令 瀏覽:929
php支持curlhttps 瀏覽:142
新預演算法責任 瀏覽:443
伺服器如何處理5萬人同時在線 瀏覽:250
哈夫曼編碼數據壓縮 瀏覽:425
鎖定伺服器是什麼意思 瀏覽:383
場景檢測演算法 瀏覽:616
解壓手機軟體觸屏 瀏覽:349