嵌入式系統調試中偶發性問題解決技巧

在嵌入式系統軟體調試過程中,偶發性問題往往是一個令人頭痛的問題。這些問題的特點是:按一定機率出現,具有不確定性。因此,如果不採取一些技巧,往往不容易捕捉到問題現場。因為問題出現的特點是“稍縱即逝”。找不到問題出現的現場,則無法深入分析問題出現的機理原因,只能通過猜測問題原因並嘗試修改,然後觀察問題是否再出現,如果問題看起來不再出現則認為問題解決了,但是對於問題的實質原因,卻難以說出個究竟來。這種方法雖然可以避免問題,但是無法從根本解決問題,很可能導致問題複發。  對付偶發性問題的基本策略是:(1

如何從零開始開發一款嵌入式產品(20年的嵌入式經驗分享學習)

  首先,如果你有幸看到這篇文章,千萬不要試圖在2個小時內閱讀完,就算你2個小時閱讀完,我相信你也不會理解裡面講解的精華之處,我相信,你應該將此文章慢慢品嘗,這絕對是一篇需要品嘗2~3天,再結合自己過往的經驗,加上自己的思考,我相信會對你不僅僅是技術能力,甚至包括整體的思維方式都會有一個非常大的提高。  我寫這篇文章的目的,是用本人20年的嵌入式經驗呈現給大家一副完整的產品,項目開發藍圖,用本人多年的經曆總結了一些教訓,無私的分享給各位,希望各位今後能站在本人的肩膀之上,少走彎路,多為公司,為個

用於多媒體應用的無視窗ATL ActiveX控制項

  這個ATL activeX架構適用於作為Windows Media Player,Flash以及Sliverlight動畫的承載容器。整個架構分布在Windowless檔案夾下,共有6個檔案。架構:使用Adobe Flash

由QSF產生SDC

  QSF是Quartus Settings File的縮寫,包含了一個Quartus工程的所有約束,包括工程資訊、器件資訊、引腳約束、編譯約束和用於Classic Timing Analyzer的時序約束。  SDC是Synopsys Design Constraints的縮寫,該檔案用於TimeQuest Timing Analyzer的時序約束和定製報告。在TimeQuest中把Classic Timing Analyzer的約束語句轉換為SDC是很容易的。在Constraints菜單下,

學習嵌入式,該學習什麼基本的知識呢?

  1、C開發經驗  條件:Linux  方法:隨便,主要是掌握ANSI C編程(不包括gtk,qt等圖形可視化開發)  首先C語言,這個是毋庸置疑的,不管是做嵌入式軟體還是硬體開發的人員,對C語言的掌握這個是必需的,特別是對於以後致力於嵌入式軟體開發的人,現在絕大部分都是用C語言,你說不掌握它可以嗎?至於如何學習C語言,我想這些基礎的知識每個人都有自己的方法,關鍵要去學習,看書也好,網上找些視頻看也好。很多人會問,C語言要學到怎麼樣,我覺得這沒有標準的答案。我想至少你在明白了一些基礎的概念後,

CS8900A調試步驟

      1.檢查網路的物理串連。  用交叉網線將目標板於PC機相聯,此時目標板和PC機的乙太網路串連指示燈(LINKLED)將常亮,活動指示燈將閃爍,PC機(windows系統)將出現網路已串連資訊。如果不正常,可能是接收或發送鏈路還有問題,或晶片的該相關部分有問題,特別注意晶片第93腳(RES)串連的電阻阻值。  2.讀取晶片ID判斷晶片及ISA匯流排是否正常。  可在kernel/drivers/net/CS8900A.c的初始化部分增加讀取晶片ID號及列印的代碼。正常的ChipID:6

fcntl 函數介紹

fcntl 函數介紹650078065  fcntl()用來操作檔案描述詞的一些特性。參數fd代表欲設定的檔案描述詞,參數cmd代表欲操作的指令。  檔案描述詞,當一個檔案開啟後,系統會分配一部分資源來儲存該檔案的資訊.以後對檔案的操作就可以直接引用該部分資源了,檔案描述詞可以認為是該部分資源的一個索引,在開啟檔案時返回.fcntl是用來對檔案的一些屬性進行設定的,需要一個檔案描述詞參數.  有以下幾種情況:

GetMemory函數的幾種經典考法(二)

代碼1:void GetMemory(char *p){ p = (char*)malloc(100);}int main(int argc, char *argv[]){ char *str = NULL; GetMemory(str); strcpy(str, "Hello"); return 0;}str沒有得到分配記憶體的地址值。 記憶體空間狀態:首先申請了四個位元組的棧空間,存放str指標,此時str的值為0,存放str的這塊記憶體的地址值為0x0012ff7c。調用函數

ARM9硬體介面學習之二 RTC

  在一個嵌入式系統中,系統時鐘單元可以其提供可靠的時鐘,包括時分秒和年月日。即使在系統處於關機狀態下它也能夠正常工作(通常採用後備電池供電),它的外圍也不需要太多的輔助電路,典型的就是只需要一個高精度的晶振。  S3c2410 RTC特性:1.時鐘資料採用BCD編碼2.能夠對閏年的年月日進行自動處理3.具有警示功能,當系統處於關機狀態時,能產生警示中斷;4.具有獨立的電源輸入5.提供毫秒級時鐘中斷,該中斷可用於作為嵌入式作業系統的核心時鐘6.使用獨立外部時鐘晶震,頻率為32.768khz。  

AMBA 匯流排介紹

什麼是AMBA片上匯流排?  隨著深亞微米工藝技術日益成熟,整合電路晶片的規模越來越大。數字IC從基於時序驅動的設計方法,發展到基於IP複用的設計方法,並在SOC設計中得到了廣泛應用。在基於IP複用的SoC設計中,片上匯流排設計是最關鍵的問題。為此,業界出現了很多片上匯流排標準。其中,由ARM公司推出的AMBA片上匯流排受到了廣大IP開發商和SoC系統整合者的青睞,已成為一種流行的工業標準片上結構。AMBA規範主要包括了AHB(Advanced High performance

wait and waitpid

1.8 wait1.8.1 簡介wait的函數原型是:#include <sys/types.h> /* 提供類型pid_t的定義 */#include <sys/wait.h>pid_t wait(int *status)  進程一旦調用了wait,就立即阻塞自己,由wait自動分析是否當前進程的某個子進程已經退出,如果讓它找到了這樣一個已經變成殭屍的子進程,wait就會收集這個子進程的資訊,並把它徹底銷毀後返回;如果沒有找到這樣一個子進程,wait就會一直阻塞在這裡,

AD、Pads、Allegro、Mentor間的複用及設計建議方案

對於這幾款軟體的相互轉換問題,大家都有提問一些轉換方法及轉換過程中的問題,由於在這方面多有涉及,總結一些經驗,與大家分享;也希望大家與我討論。1、對於轉換方法:基本是轉換是按次序3 F) z# ?, l3 d- \+ C      AD-Pads    PADS轉換工具,AD版本為5.0則可      Pads-Allegro    Pads匯出asc檔案,也是5.0,不要太高,allegro自身帶有pads translator工具進行匯入      Allegro-Mentor/ 

GetMemory函數的幾種經典考法

例一:void GetMemory(char *p){   p = (char*)malloc(100);}void Test(void){   char *str = NULL;   GetMemory(str);   strcpy(str, "hello world");   printf(str);}//請問運行Test函數後會是什麼樣的結果?NO.1:程式首先申請一個char類型的指標str,並把str指向NULL(即str裡存的是NULL的地址,*str為NULL中的值為0),調用

ARM9硬體介面學習之四 CLOCK

   S3C2410 CPU預設的工作主頻為12MHz,使用PLL電路可以產生更高的主頻供CPU及外圍器件使用。S3C2410有兩個PLL:MPLL和UPLL,UPLL專用與USB裝置。MPLL用於CPU及其他外圍器件。  通過MPLL會產生三個部分的時鐘頻率:FCLK、HCLK、PLCK。FCLK用於CPU核,HCLK用於AHB匯流排的裝置(比如SDRAM),PCLK用於APB匯流排的裝置(比如UART)。從時鐘結構圖中可以查看到使用不同時鐘頻率的硬體。  Figure 7-1. Clock

嵌入式系統中常見的網卡驅動比較(CS8900A,RTL8019,DM9000)

一、CS8900A  CS8900晶片是Cirrus Logic公司生產的一種區域網路處理晶片,在嵌入式領域中使用非常常見。它的封裝是100-pin TQFP,內部整合了在片RAM、10BASE-T收發濾波器,並且提供8位和16位兩種介面。CS8900與ARM晶片按照16位方式串連,網卡晶片複位後預設工作方式為I/O串連,基址是300H。CS8900A還提供其它效能和配置選擇。它獨特的Packet Page結構可自動適應網路通訊量模式的改變和現有系統資源,從而提高系統效率。  MCU與CS890

集電極開路門(OC門)

集電極開路門  在工程實踐中將兩個門的輸出端並聯以實現與邏輯的功能稱為線與。  考察所示的情況。當將圖中所示的兩個邏輯門的輸出串連在一起,並且當第一個門的輸出為高電平(第一個門的T4導通),第二個門的輸出為低電平(第二個門的T3導通)時,正中紅線所示將出現一個大電流通道,很可能導致晶體管的損壞。  為了避免線與時的產生大電流,可以採用集電極開路門(簡稱OC門)來解決

臨界區,互斥量,訊號量,事件的區別(線程同步)

四種進程或線程同步互斥的控制方法1、臨界區:通過對多線程的序列化來訪問公用資源或一段代碼,速度快,適合控制資料訪問。 2、互斥量:為協調共同對一個共用資源的單獨訪問而設計的。 3、訊號量:為控制一個具有有限數量使用者資源而設計。 4、事 件:用來通知線程有一些事件已發生,從而啟動後繼任務的開始。 臨界區(Critical

ARM9硬體介面學習之三 GPIO

  GPIO口一是個比較重要的概念,使用者可以通過GPIO口和硬體進行資料互動(如UART)、控制硬體工作(如LED、蜂鳴器等)、讀取硬體的工作狀態訊號(如中斷訊號)等。GPIO口的使用非常廣泛。S3C2410一共有GPA到GPH 8個GPIO口、117個pins。  這些I/O

CS8900嵌入式乙太網路pcb設計中的幾點注意事項

1.      數字訊號和類比訊號不能混合布線;2.      訊號線不能走在cs8900a下面;3.  晶片3對類比電源、地對,4對數字電源、地對間都加0.1uF電容,連線儘可能短;連線一端接電容,另一端接網路;4.      兩面鋪銅,元件層的鋪銅連到地網路上,焊接層的鋪銅連到電源層;5.      傳輸線和接收線的終端匹配電阻和電容應盡量靠近cs8900a;6.      輸入端接去耦電容,提供足夠乾淨和準確的+3.3v(或5V)電壓和地電位。7.     

在校學習到工作的轉變

完成在校學習到工作的轉變,這是必然要走的一個階段。如何順利完成轉變,從網上看到文章,提出要進行五項基本修鍊:   一、少說話多觀察。新環境自然有很多令人耳目一新的事物,我們首先要學會的不是雄辯口才而是觀察思考。新人最忌諱的就是還沒看清問題就高談闊論。當然,這裡的少說話不是讓你成為啞巴,該說的還得說,該請教同事的還得請教,否則就是木訥呆板了。  二、少提建議多做份內事。每個單位無論是在流程上還是在細節上,都會有這樣或那樣的弊端。你或許感到很奇怪,怎麼連諾大的集團也會犯這種顯而易見的低級常識錯誤。能

總頁數: 61357 1 .... 6900 6901 6902 6903 6904 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.