Time of Update: 2018-12-04
很多朋友跟我說想學嵌入式,但是苦於找不到入門的書籍,整理了下思緒,今天把它貼出來,希望對大家有所協助,向著嵌入式前進吧!!! 一,C/C++語言系列:1,《高品質C,C++編程指南》(提高)*2,《C語言深度解剖》(基礎,細緻)3,《C和指標》(提高)*4,《C++Primer中文版》(基礎,細緻)*5,《C++沉思錄》(提高)6,《數組與指標的藝術》(提高)二,linux基礎及進程線程網路編程:1,《linux基礎與目錄》(基礎)*2,《嵌入式應用程式開發詳解》(適合初學)3,《linux程式
Time of Update: 2018-12-04
//bmp.h#pragma pack (1)typedef struct tagBITMAPFILEHEADER{ unsigned char bfType[2]; int bfSize; unsigned short bfReserved1; unsigned short bfReserved2; int bfOffBits;}BITMAPFILEHEADER;typedef struct tagBITMAPINFOHEADER{ int biSize;
Time of Update: 2018-12-04
/* ** $Id: painter.c,v 1.6 2004/09/29 05:35:24 suowei Exp $**** Listing 15.1**** painter.c: Sample program for MiniGUI Programming Guide** Painting by using mouse.**** Copyright (C) 2004 Feynman Software.**** License: GPL*/#include
Time of Update: 2018-12-04
在skindemo.c中並沒有普通標籤的使用方法,花了點時間研究出來了,關鍵是皮膚介面結構體裡面的字型成員fonts的賦值,關鍵代碼如下: static si_nrmlabel_t title ={"Hello", 0xDD0000, 0x00FF00, 0xFF0000, 0}; static skin_item_t skin_main_items [] ={ {SIID_TITLE, SI_TYPE_NRMLABEL | SI_TEST_SHAPE_RECT
Time of Update: 2018-12-04
NMEA是National Marine Electronics Association(美國國家海事電子協會)的縮寫。該協會是一家專門從事海洋電子裝置方面研究的民間機構,它制定了關於GPS(全球定位系統)電子裝置之間的通訊介面和協議的NMEA標準。NMEA-0183協議是目前GPS接收機上使用最廣泛的協議,大多數常見的GPS接收機、GPS資料處理軟體、導航軟體都遵守或者至少相容這個協議。一、 電器特性Baud Rate:4800bpsData
Time of Update: 2018-12-04
Time of Update: 2018-12-04
/* ** $Id: progressbar.c,v 1.6 2004/09/24 05:02:15 suowei Exp $**** Listing 25.1**** progressbar.c: Sample program for MiniGUI Programming Guide** Usage of PORGRESSBAR control.**** Copyright (C) 2004 Feynman Software.**** License: GPL*/#include
Time of Update: 2018-12-04
解構函式也是特殊的類成員函數,它沒有傳回型別,沒有參數,不能隨意調用,也沒有重載。只是在類對象生命期結束的時候,由系統自動調用釋放在建構函式中分配的資源。這種在運行時,能依據其類型確認調用那個函數的能力稱為多態性,或稱遲後聯編。另: 解構函式一般在對象撤消前做收尾工作,比如回收記憶體等工作,虛擬函數的功能是使子類可以用同名的函數對父類函數進行覆蓋,並且在調用時自動調用子類覆蓋函數,如果是純虛函數,則純粹是為了在子類覆蓋時有個統一的命名而已。注意:子類重新定義父類的虛函數的做法叫覆蓋,overri
Time of Update: 2018-12-04
首先介紹下背景,Linux 音頻系統非常不完全簡史: 1. OSS3 是 Linux 核心中比較老的聲音系統,目前已逐漸廢棄 2. OSS4 開發的時候是閉源軟體,所以 2002 年 ALSA 被用來替代 OSS3 作為 Linux 核心中的聲音構架 3. 2007 年的時候 4Front Technologies 發布了 GPL 版本的 OSS4,此時 ALSA 已成氣候關於 ALSA,OSS4,PulseAudio 和 Jack 一知半解版介紹(Esd 等就此省略一萬字): 1.
Time of Update: 2018-12-04
主要參考網路文章MINIGUI移植到2440嵌入式網路部落格,作者:劉溯奇 MiniGUI 1.3.3 移植詳解,作者:大漠孤狼 說明: 因為要用MINIGUI做PDA,得把MINIGUI移植到我的開發板MINIGUI上,移植成功,支援PNG, JPG,滑鼠和觸控螢幕可以用,但觸控螢幕不準,需要較正,較正本打算用tslib.1.3,移植成功 後,MINIGUI要使用它做為IAL,還需對libminigui1.6.10/res/ial/2410.c進行修改並用
Time of Update: 2018-12-04
照《ARM嵌入式MiniGUI初步與應用開發範例》改寫的時鐘程式#include <minigui/common.h>#include <minigui/minigui.h>#include <minigui/gdi.h>#include <minigui/window.h>#include <minigui/control.h>#include <time.h>#define MWINDOW_LX 0 //window
Time of Update: 2018-12-04
[code]make all-recursivemake[1]: Entering directory `/home/izhier/download/libmad-0.15.1b'make[2]: Entering directory `/home/izhier/download/libmad-0.15.1b'if /bin/sh ./libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.-DFPM_INTEL
Time of Update: 2018-12-04
什麼是殭屍進程 一個進程在調用exit命令結束自己的生命的時候,其實它並沒有真正的被 殭屍進程銷毀, 而是留下一個稱為殭屍進程(Zombie)的資料結構(系統調用exit,它的作用是
Time of Update: 2018-12-04
在X11平台下qt程式,首先準備好程式中需要使用的資源,庫和外掛程式... 比如你的可運行程式取名叫作panel,那把你的panel,那些libQt*.so.4和libQt*.so.4.6.0(連結和共用庫都要)放在同一目錄下(也可以不同,只要小小修改下shell檔案).plugins就不多說了。 在程式的同目錄下,建立一個空文檔,取名panel.sh (檔案名稱與程式名同名,副檔名為sh,shell檔案)。 在panel.sh中原封不動的寫入以下語句:
Time of Update: 2018-12-04
# MiniGUI Ver 2.0.3/1.6.9# This configuration file is for classic window style.## Copyright (C) 2002~2007 Feynman Software# Copyright (C) 1998~2002 Wei Yongming.## Web: http://www.minigui.com# Web: http://www.minigui.org## This configuration
Time of Update: 2018-12-04
一、.程式什麼時候應該使用線程,什麼時候單線程效率高。答:1.耗時的操作使用線程,提高應用程式響應2.並行操作時使用線程,如C/S架構的伺服器端並發線程響應使用者的請求。3.多CPU系統中,使用線程提高CPU利用率4.改善程式結構。一個既長又複雜的進程可以考慮分為多個線程,成為幾個獨立或半獨立的運行部分,這樣的程式會利於理解和修改。其他情況都使用單線程。二、.Linux有核心級線程麼。
Time of Update: 2018-12-04
2.線程的退出2.1 線程的正常退出處理: 1.可預知的錯誤發生時,應對處理:使整個程式stop的方法 設定全域的開關 ,在主進程和線程中使用【線程中使用extern 進行引用】,當主進程或線程中的開關發生變化,要求退出時,所有線程退出,主進程調用函數pthread_join()阻塞式的等待所有線程的退出。 2.可預知的錯誤發生時,應對處理:使整個程式stop的方法 對於接受線程:可以內部發送控制資訊【退出線程訊息】 ,使各個接受線程退出【建議使用1.方法】2.2
Time of Update: 2018-12-04
有兩種主要的方法實現線程包:在使用者空間中和在核心中。前者是把整個線程包放在使用者空間中,核心對線程包一無所知,仍按正常的單線程進程方式管理。在使用者空間實現線程,線程在一個運行時系統(即線程庫)的頂部運行,這個運行時系統是一個管理線程的過程的集合,包括pthread_create、pthread_exit、pthread_join、pthread_yield等過程。每個進程需要其專門的線程表(thread
Time of Update: 2018-12-04
訊號量和自旋鎖區別自旋鎖不會引起調用者睡眠,如果自旋鎖已經被別的執行單元保持,調用者就一直迴圈查看是否該自旋鎖的保持者已經釋放了鎖,"自旋"就是"在原地打轉"。而訊號量則引起調用者睡眠,它把進程從運行隊列上拖出去,除非獲得鎖。------------------------------------------------------雖然聽起來兩者之間的使用條件複雜,其實在實際使用中訊號量和自旋鎖並不易混淆。注意以下原則:如果代碼需要睡眠——這往往是發生在和使用者空間同步時——使用訊號量是唯一的選
Time of Update: 2018-12-04
socket編程問題SIGPIPE訊號問題=========================當伺服器close一個串連時,若client端接著發資料。根據TCP協議的規定,會收到一個RST響應,client再往這個伺服器發送資料時,系統會發出一個SIGPIPE訊號給進程,告訴進程這個串連已經斷開了,不要再寫了。 根據訊號的預設處理規則SIGPIPE訊號的預設執行動作是terminate(終止、退出),所以client會退出。若不想用戶端退出可以把SIGPIPE設為SIG_IGN 如: