原创 階段嵌入式硬件學習計劃

嵌入式底層學習包括,應用程序級,底層驅動級,硬件芯片級,最後是Linux系統級。 其中應用程序級學習主要是調用USB、網口、音頻、串口、LCD、GPIO、I2C、SPI、PCI-e等; 底層驅動級主要涉及通過驅動註冊硬件到內核

原创 C++中的對象指針總結

指向對象的指針 在建立對象的時候,編譯系統會給每一個對象分配一定的存儲空間,以存放其成員。對象空間的起始地址就是對象的指針。可以定義一個指針變量,用來存放對象的指針。 一個簡單的示例: 代碼如下: #include <iost

原创 AlphaGo原理的認識

1、AlphaGo贏得了世界圍棋冠軍 Google AlphaGo在無人圍棋比賽中4:1戰勝李世石,具有一定的里程碑意義,相比於20年前,IBM深藍(Deep Blue)計算機戰勝國際象棋冠軍卡斯帕羅夫,帶給我更多震撼和啓發。但從

原创 Linux系統ALSA音頻編程

今天要在linux下搞音頻編程,一般使用ALSA音頻編程。ALSA是Advanced Linux Sound Architecture的縮寫,高級Linux聲音架構的簡稱,它在Linux操作系統上提供了音頻和MIDI(Musica

原创 Solder Mask與Paste Mask的區別

Solder Mask與Paste Mask的區別 solder mask就是阻焊層,是爲了把焊盤露出來用的,也就是通常說的綠油層,實際上就是在綠油層上挖孔,把焊盤等不需要綠油蓋住的地方露出來。Solder層是要把PAD露出來

原创 libusb數據結構說明

設備描述符結構 struct libusb_device_descriptor{ u_int8_t blength; u_int8_t bDescriptorType; u_int16_t bcdUSB; u_int8_t

原创 對於Linux alsa設備寫操作

set_pcm_play函數用於播放長度爲datalen的buffer中的字符串,其中buffer中字符串爲除去WAV文件頭得到的二進制歌曲文件。 int demo_sound::set_pcm_play(char *buffer

原创 linux下usb驅動接口中端點介紹

端點 USB 通訊的最基本形式是通過一個稱爲端點的東西。一個USB端點只能向一個方向傳輸數據(從主機到設備(稱爲輸出端點)或者從設備到主機(稱爲輸入端點))。端點可被看作一個單向的管道。 一個 USB 端點有 4 種不同類型

原创 allegro設置規則

Allegro16.3之後版本增加了約束管理器(Constraint Manager)。將間距約束(Spacing Rules)設置、物理約束(Physical Rules)、相同網絡間距(Same Net Spacing)都以數

原创 Linux下C獲取所有可用網卡信息

在Linux下開發網絡程序時,經常會遇到需要取本地網絡接口名、IP、廣播地址、子網掩碼或者MAC地址等信息的需求,最常見的辦法是配合宏SIOCGIFHWADDR、SIOCGIFADDR、SIOCGIFBRDADDR與SIOCGIF

原创 重載、覆蓋和隱藏的區別以及基類、父類指針關係

函數重載: 在一個類中,函數名相同,函數參數類型,或者函數參數個數不同,或者都不同,成爲函數重載。 函數的重載發生在程序編譯階段,由編譯器進行優化和區分。 《高質量C++/C編程指南》已經清晰的列出了重載函數的特性: (1)相

原创 Cadence常用

Allegro的屬性設定 Allegro界面介紹: option(選項):顯示正在使用的命令。 Find(選取) Design Object Find Filter選項: Groups (將1個或者多個元件設定爲同一組羣

原创 libusb數據結構說明

設備描述符結構 struct libusb_device_descriptor{ u_int8_t blength; u_int8_t bDescriptorType; u_int16_t bcdUSB; u_int8_t

原创 1a電流用多粗的線

1、由於敷銅板銅箔厚度有限,在需要流過較大電流的條狀銅箔中,應考慮銅箔的載流量問題. 仍以典型的0.03mm 厚度的爲例,如果將銅箔作爲寬爲W(mm),長度爲L(mm)的條狀導線, 其電阻爲0.0005*L/W 歐姆. 另外,銅箔

原创 cadence 六層板佈局走線技巧

1、佈局 對於重要,多引腳元器件要精準定位;如DDR,FPGA,FPC排線等,對於外部接口要精準定位;對於較高元器件要精準定位; 製作合適的定位孔,預留爲定位孔預留足夠的餘量 Package Keepin 預留2mm,Rout