以前,我們學C語言的時候,多多少少都查過一些標準庫函數(shù)吧。這里介紹查找C語言的標準庫函數(shù)的兩種方法:一種方法是直接到http://www.cplusplus.com這個網(wǎng)站上去查看:
這里覆蓋了C語言標準庫中的所有函數(shù),給出了每個函數(shù)的介紹并且都給出了具體的用法示例,比如:
只不過都是英文的說明,可見英文的重要性。
另一種方法是,找一些離線的文檔,網(wǎng)上有不少人整理了一些離線的文檔,比如.chm格式(已編譯的幫助文件)的文檔:
里面大概是這樣子的:
也可以很方便的查找每個函數(shù)的用法,但是,這里面的不是很全,所以查找C標準庫函數(shù)還是建議到http://www.cplusplus.com上面去查找。
本文分享的重點就是.chm文件的制作。最近需要對自己的一些代碼做一些整理,發(fā)現(xiàn)整理成.chm文件是個不錯的選擇,.chm文件可以根據(jù)我們的代碼生成,下面把生成.chm文件的方法分享給大家。
需要三個工具:doxygen安裝包、graphviz安裝包、htmlhelp安裝包。其中doxygen是一種開源跨平臺的文檔系統(tǒng),doxygen可以從一套歸檔源文件開始,生成HTML格式的在線類瀏覽器,或離線的LATEX、RTF參考手冊。
doxygen可以生成好幾種格式的文檔,要生成.chm格式的手冊就必須安裝htmlhelp,要生成關(guān)系圖必須安裝依graphviz。這個個工具的獲取方法:
(1)doxygen安裝包:
http://www.doxygen.nl/download.html
(2)graphviz安裝包:
http://www.graphviz.org/
(3)htmlhelp安裝包:
https://www.microsoft.com/en-us/download/details.aspx?id=21138
鏈接:https://pan.baidu.com/s/1gsJxkGsoO0ncy0GGM6PyQw 提取碼:3754
若鏈接失效可聯(lián)系我。
下載的都是.exe格式的可執(zhí)行文件,就按平時安裝軟件的方法安裝件就可以了。但是,需要記住graphviz與htmlhelp的安裝路徑,后面使用Doxygen時需要用到。
Doxygen可以根據(jù)固定格式的代碼注釋生成相對應的.chm格式的手冊。支持的語言有好多種,如C/C++/C#/Objective-C/PHP/Java等。這里主要是分享C語言,Doxygen可以識別的固定格式注釋有以下幾種:
這里,我使用第一種,如:
/**
* 函數(shù)功能:字符串逆序函數(shù)
* @param src_str:字符串
* @param str_len:字符串長度
* @return 逆序之后得到的字符串
*/
char *Str_ReverseOrder(char *src_str,int str_len)
{
char *dst_str=src_str;
char temp;
printf("Method 1!\n");
for(int i=0;i<str_len/2;i++)
{
temp=src_str[i];
src_str[i]=src_str[str_len-i-1];
src_str[str_len-i-1]=temp;
}
return (char*)dst_str;
}
所有的函數(shù)都使用這樣統(tǒng)一格式的注釋。
下面看一下我們生成的.chm文件:
以上就是本次的分享,感謝閱讀!
創(chuàng)龍科技SOM-TL6678F是一款基于TI KeyStone架構(gòu)C6000系列TMS320C6678八核C66x定點/浮點DSP以及Xilinx Kintex-7 FPGA處理器設(shè)計的高端異構(gòu)多核工業(yè)級核心板。核心板內(nèi)部DSP與FPGA通過SRIO、EMIF16、I2C通信總線連接,并通過工業(yè)級高速B2B連接器引出千兆網(wǎng)口、PCIe、HyperLink、EMIF16、GTX等高速通信接口。核心板經(jīng)過專業(yè)的PCB Layout和高低溫測試驗證,穩(wěn)定可靠,可滿足各種工業(yè)應用環(huán)境。
用戶使用核心板進行二次開發(fā)時,僅需專注上層運用,降低了開發(fā)難度和時間成本,可快速進行產(chǎn)品方案評估與技術(shù)預研。
圖 1 核心板正面圖
目 錄
前 言 3
1 dsplib_fft案例 4
2 dsplib_fir案例 9
3 dsplib_iir案例 14
4 dsplib_matrix案例 19
5 imglib_sobel案例 21
6 imglib_threshold案例 25
(裸機)算法案例基于多核軟件開發(fā)包BIOS-MCSDK中的算法庫dsplib_c66x_3_1_0_0、imglib_c66x_3_1_1_0以及mathlib_c66x_3_0_1_1進行開發(fā)。
算法案例位于產(chǎn)品資料“4-軟件資料\Demo\DSP_Demo\Algorithm-demos\”路徑下。案例目錄說明如下表,其中bin目錄存放程序可執(zhí)行文件,project目錄存放案例工程源文件。
本文檔案例程序默認使用DSP端主頻為1GHz、DSP端DDR3容量為1GByte的核心板,通過TL-XDS200仿真器加載運行進行操作效果演示。請通過Micro USB線將調(diào)試串口與PC機進行連接,打開串口調(diào)試終端SecureCRT并正確進行串口連接設(shè)置。
表 1
目錄 | 文件/目錄 | 說明 |
bin | xxx.out | 程序可執(zhí)行文件 |
project | xxx.c | 程序源碼文件 |
C66x.cmd | 內(nèi)存配置鏈接文件 | |
driver | 驅(qū)動文件存放目錄 | |
system | 平臺文件存放目錄 | |
.ccsproject/.cproject/.project | CCS工程文件 |
DSPLIB函數(shù)開發(fā)參考資料:BIOS-MCSDK多核軟件開發(fā)包安裝目錄“dsplib_c66x_3_1_0_0\packages\ti\dsplib\docs\doxygen\DSPLIB.chm”。
IMGLIB函數(shù)開發(fā)參考資料:BIOS-MCSDK多核軟件開發(fā)包安裝目錄“imglib_c66x_3_1_1_0\docs\IMGLIB_Users_Manual.chm”。
MATHLIB函數(shù)開發(fā)參考資料:BIOS-MCSDK多核軟件開發(fā)包安裝目錄“mathlib_c66x_3_0_1_1\docs”。
案例功能:調(diào)用MATHLIB中的sinsp函數(shù)產(chǎn)生單精度測試信號,以及調(diào)用sinsp和cossp函數(shù)生成快速傅里葉變換(FFT)所需旋轉(zhuǎn)因子。調(diào)用DSPLIB中的DSPF_sp_fftSPxSP函數(shù)對測試信號進行快速傅里葉變換(FFT),調(diào)用DSPF_sp_ifftSPxSP函數(shù)進行快速傅里葉逆變換(IFFT),采樣點從8遞增到4096,并統(tǒng)計運算時間。
請運行程序,CCS的Console窗口將會打印FFT和IFFT運算時間。
以N=4096為例,不使能Cache時FFT運算時間為254.646us,使能Cache時FFT運算時間為53.292us,效率提升約4.8倍。不使能Cache時IFFT運算時間為249.655us,使能Cache時IFFT運算時間為57.027us,效率提升約4.4倍。
圖 1
表 2
參數(shù) | 解析 |
Cache Disabled/Cache Enable | 不使能/使能L1P與L1D Cache |
DSPF_sp_fftSPxSP/DSPF_sp_ifftSPxSP | 單精度FFT/IFFT |
N | 樣本長度 |
radix | 運算基數(shù) (當N為4的冪時,radix為4,否則radix為2) |
cycles | 運算周期 |
time | 運算時間 |
在main函數(shù)中申請數(shù)據(jù)緩沖區(qū),fft_input數(shù)組用于存放FFT的信號輸入數(shù)據(jù),fft_output數(shù)組用于存放經(jīng)FFT處理的信號數(shù)據(jù),ifft_output數(shù)組用于存放經(jīng)IFFT處理的信號數(shù)據(jù),fft_twiddle數(shù)組用于存放FFT旋轉(zhuǎn)因子,ifft_twiddle數(shù)組用于存放IFFT旋轉(zhuǎn)因子,signal_data數(shù)組用于存放自定義信號數(shù)據(jù)。
圖 2
生成測試信號,并存放于復數(shù)數(shù)組中。其中實部數(shù)據(jù)為兩個正弦波的疊加信號,一個正弦波的振幅為5、頻率為50Hz,另一個正弦波的振幅為15、頻率為150Hz,虛部數(shù)據(jù)均為0。
圖 3
不使能L1 Cache,對復數(shù)數(shù)據(jù)進行FFT以及IFFT,并統(tǒng)計運算時間。
圖 4
圖 5
使能L1 Cache,對復數(shù)數(shù)據(jù)進行FFT以及IFFT,并統(tǒng)計運算時間。
圖 6
為測試不同狀態(tài)下的功耗,測試完成后循環(huán)進行FFT以及IFFT,使DSP核心處于高負載狀態(tài)。循環(huán)過程中,不檢測數(shù)據(jù)的正確性。
圖 7
案例功能:調(diào)用C標準庫中的sin函數(shù)產(chǎn)生測試信號,調(diào)用DSPLIB中的DSPF_sp_fir_r2函數(shù)對測試信號進行有限長單位沖激響應濾波(FIR),輸出采樣點為1024,并統(tǒng)計運算時間。
請運行程序,CCS的Console窗口將會打印FIR運算時間。
圖 8
點擊CCS的“Tools -> Graph -> Single Time”,在彈出的界面中按照下圖內(nèi)容進行配置。其中Start Address選項填寫fir_input數(shù)組,此數(shù)組用于存放FIR的信號輸入數(shù)據(jù)。點擊OK,即可查看測試信號的原始波形。
圖 9
圖 10
表 3
參數(shù) | 解析 |
Acquisition Buffer Size | 數(shù)據(jù)讀取長度 |
Dsp Data Type | 數(shù)據(jù)讀取類型 |
Start Address | 數(shù)據(jù)讀取起始地址 |
Display Data Size | 數(shù)據(jù)顯示長度 |
圖 11
點擊CCS的“Tools -> Graph -> Single Time”,在彈出的界面中按照下圖內(nèi)容進行配置。其中Start Address選項填寫fir_output數(shù)組,此數(shù)組用于存放經(jīng)FIR處理的信號數(shù)據(jù)。點擊OK,即可查看經(jīng)FIR處理的信號波形。
圖 12
圖 13
圖 14
圖 15
案例功能:調(diào)用C標準庫中的sin函數(shù)產(chǎn)生測試信號,調(diào)用DSPLIB中的DSPF_sp_iir函數(shù)對測試信號進行無限長單位沖激響應濾波(IIR),輸出采樣點為1024,并統(tǒng)計運算時間。
請運行程序,CCS的Console窗口將會打印IIR運算時間。
圖 16
點擊CCS的“Tools -> Graph -> Single Time”,在彈出的界面中按照下圖內(nèi)容進行配置。其中Start Address選項填寫iir_input數(shù)組,此數(shù)組用于存放IIR的信號輸入數(shù)據(jù)。點擊OK,即可查看測試信號的原始波形。
圖 17
圖 18
圖 19
點擊CCS的“Tools -> Graph -> Single Time”,在彈出的界面中按照下圖內(nèi)容進行配置。其中Start Address選項填寫iir_output數(shù)組,此數(shù)組用于存放經(jīng)IIR處理的信號數(shù)據(jù)。點擊OK,即可查看經(jīng)IIR處理的信號波形。
圖 20
圖 21
圖 22
圖 23
案例功能:調(diào)用DSPLIB中的DSPF_sp_mat_mul函數(shù),將矩陣A與矩陣B相乘,并將結(jié)果儲存在矩陣C中。
請運行程序,CCS的Console窗口將會打印運算結(jié)果。
圖 24
圖 25
通過SIZE指定矩陣大小。
圖 26
初始化矩陣A和矩陣B。
圖 27
調(diào)用DSPF_sp_mat_mul函數(shù)進行矩陣相乘運算。
圖 28
案例功能:通過fread函數(shù)讀取BMP灰度圖像,并調(diào)用IMGLIB中的IMG_sobel_3x3_8函數(shù)對圖像進行Sobel(邊緣檢測)算法處理,再通過fwrite函數(shù)將經(jīng)處理得到的BMP圖像進行保存。
將案例image目錄下的BMP灰度圖像文件gray.bmp拷貝至程序可執(zhí)行文件相同目錄下。
請運行程序,CCS的Console窗口將會在1~2min內(nèi)打印如下信息,同時在程序可執(zhí)行文件相同目錄下生成經(jīng)Sobel(邊緣檢測)算法處理得到的圖像文件sobel.bmp。
本案例測試耗時1~2min,主要因為系統(tǒng)編程如fread,fwrite函數(shù)運行占用時間較長。
圖 29
圖 30
通過fopen、fseek和fread等函數(shù)獲取圖像大小,并讀取圖像文件。
圖 31
根據(jù)圖像文件頭信息申請內(nèi)存空間。
圖 32
讀取圖像位圖信息,并調(diào)用IMGLIB中的IMG_sobel_3x3_8函數(shù)對圖像進行Sobel(邊緣檢測)算法處理,再通過fwrite函數(shù)將經(jīng)處理得到的BMP圖像進行保存。
圖 33
案例功能:通過bmp_read_header函數(shù)讀取BMP灰度圖像,并調(diào)用IMGLIB中的IMG_thr_le2max_8和IMG_thr_le2min_8函數(shù)對圖像進行二值化算法處理,再通過fwrite函數(shù)將經(jīng)處理得到的BMP圖像進行保存。
將案例image目錄下的BMP灰度圖像文件gray.bmp拷貝至程序可執(zhí)行文件相同目錄下。
請運行程序,CCS的Console窗口將會在1~2min內(nèi)打印如下信息,同時在程序可執(zhí)行文件相同目錄下生成經(jīng)二值化算法處理得到的圖像文件threshold.bmp。
本案例測試耗時1~2min,主要因為系統(tǒng)編程如fread,fwrite函數(shù)運行占用時間較長。
圖 34
圖 35
通過fopen、fseek和fread等函數(shù)獲取圖像大小,并讀取圖像文件。
圖 36
根據(jù)圖像文件頭信息申請內(nèi)存空間。
圖 37
讀取圖像位圖信息,并調(diào)用IMGLIB中的IMG_thr_le2max_8和IMG_thr_le2min_8函數(shù)對圖像進行二值化算法處理,再通過fwrite函數(shù)將經(jīng)處理得到的BMP圖像進行保存。
圖 38
t作為一個優(yōu)秀的跨平臺C++圖形用戶界面應用程序開發(fā)框架,被廣泛用于各行各業(yè)應用程序的開發(fā)。本文中總結(jié)了利用Qt開發(fā)的部分軟件,其中不乏如Goole Earth、咪咕音樂、WPS Office、Mathematica、YY語音、Autodesk Maya等知名軟件。下面根據(jù)不同類別分別列出。
名稱 | 說明 |
Adobe Photoshop Album | 圖像組織應用程序 |
Google Earth | 三維虛擬地圖軟件 |
Ipe | 自由的矢量圖形編輯器 |
DAZ Studio | 三維圖形演示/動畫應用程序 |
Maxwell Render | 幫助從計算機三維模型數(shù)據(jù)生成照片級真實感圖像的軟件包 |
SciDAVis | 跨平臺繪圖與數(shù)據(jù)分析程序 |
3DSlicer | 用于可視化和醫(yī)學圖像計算的免費開源軟件 |
VisTrails | 科學的工作流管理與可視化系統(tǒng) |
名稱 | 說明 |
咪咕音樂 | 咪咕音樂是中國移動傾力打造的正版音樂播放器 |
Avidemux | 為多用途視頻編輯和處理而設(shè)計的免費軟件程序 |
CineFX | 一款跨平臺、開源、免費、視頻剪輯,特效與合成套裝 |
Hydrogen | 一款專業(yè)的音頻處理工具 |
Guitar Pro 6 | 吉他學習打譜創(chuàng)作軟件 |
Last.fm播放器 | 著名的互聯(lián)網(wǎng)音樂社交網(wǎng)站的桌面客戶端 |
LMMS | 一個開放源代碼的音樂編輯軟件 |
Mixxx | 跨平臺的開放源代碼DJ混音軟件 |
MuseScore | 一個WYSIWYG的樂譜編輯器 |
MythTV | 開源的數(shù)字視頻錄制軟件 |
Rosegarden | 免費數(shù)字音頻工作站程序 |
SMPlayer | 跨平臺多媒體播放器 |
UMPlayer | 基于Mplayer的美觀多媒體播放器 |
VLC多媒體播放器 | 一個體積小巧、功能強大的開源媒體播放器 |
Spotify | 音樂流媒體服務 |
Qjackctl | 用以控制JACK聲音服務器守護進程,特別為Linux音頻桌面架構(gòu) |
名稱 | 說明 |
WPS Office | 金山公司(Kingsoft)出品的辦公軟件,與微軟Office兼容性良好,個人版免費 |
Chmcreator | 開源的chm開發(fā)工具 |
LyX | 使用Qt作為界面的LaTeX軟件 |
PDFedit | 自由的PDF編輯器 |
Scribus | 桌面排版軟件 |
Texmaker | 一款跨平臺的開放源代碼LaTeX編輯器 |
TeXworks | 排版系統(tǒng)TeX的圖形用戶界面 |
名稱 | 說明 |
Mathematica | Linux和Windows版本使用Qt作為GUI |
Avogadro | 高級分子編輯器 |
CoCoA | 交換代數(shù)計算軟件 |
Emergent | 神經(jīng)網(wǎng)絡(luò)模擬器 |
FEKO | 電磁場模擬軟件產(chǎn)品 |
VisIt | 一個開源型交互式并行可視化與圖形分析工具,用于查看科學數(shù)據(jù) |
Stellarium | 一款天文學的自由軟件 |
Quantum GIS | 用戶界面友好的桌面地理信息系統(tǒng)(GIS) |
ImageVis3D | 醫(yī)學影像大數(shù)據(jù)(G級別)處理 |
名稱 | 說明 |
Qt Creator | 跨平臺的 Qt IDE, 是Qt被Nokia收購后推出的一款新的輕量級集成開發(fā)環(huán)境 |
FreeMat | 一個自由開源的數(shù)值計算環(huán)境和編程語言 |
Gambas | 基于基本解釋器的自由開發(fā)環(huán)境 |
KDELibs | 一個許多KDE程序都使用的共享庫,如Amarok、K3b、KDevelop、KOffice等 |
UniversalIndentGUI | 幫助用戶美化、重新格式化或縮進各種代碼的應用程序. |
BOUML | 免費的uml工具箱 |
Doxygen | API文件產(chǎn)生器 |
QSvn | 一個跨平臺的圖形界面的 SVN 客戶端程序 |
Tora | 支持多數(shù)據(jù)庫平臺的數(shù)據(jù)庫可視化開源工具軟件 |
名稱 | 說明 |
YY語音 | 又名“歪歪語音”,是一個可以進行在線多人語音聊天和語音會議的免費軟件。在中國大陸擁有龐大的用戶群 |
Skype | 一個使用人數(shù)眾多的基于P2P的VOIP聊天軟件 |
WordPress | 適用于博客到大型網(wǎng)站的 CMS (內(nèi)容管理系統(tǒng)) |
Opera | 著名的網(wǎng)頁瀏覽器 |
Arora | 一款跨平臺的開源網(wǎng)頁瀏覽器 |
Eva | Linux版QQ聊天軟件 |
Gadu-Gadu | 實時通信軟件 |
Kadu | 一個使用Gadu-Gadu協(xié)議的波蘭即時通訊工具 |
GNS | Cisco網(wǎng)絡(luò)模擬器 |
Psi | 一款XMPP網(wǎng)絡(luò)協(xié)議的實時通信軟件 |
qBittorrent | 自由的BitTorrent P2P客戶端 |
QupZilla | 跨平臺的開放源代碼的Webkit網(wǎng)頁瀏覽器 |
Qterm | 跨平臺的BBS軟件 |
Quassel IRC | 跨平臺的分布式IRC客戶端 |
TeamSpeak | 跨平臺的一款團隊語音通訊工具 |
Tlen.pl | 波蘭人發(fā)明的實時通信客戶端 |
Valknut | 采用直連協(xié)議的 p2p 文件共享軟件 |
VoxOx | 統(tǒng)一型的語音、視頻聊天軟件 |
wpa supplicant | wifi客戶端(client)加密認證工具 |
Dash Express | 支持互聯(lián)網(wǎng)的個人導航設(shè)備 |
名稱 | 說明 |
Autodesk Maya | 3D建模和動畫軟件 |
EAGLE | 印刷電路板(PCB)設(shè)計工具 |
FreeCAD | 自由開源的三維實體和通用設(shè)計CAD/CAE |
ISE Webpack | 由Xilinx開發(fā)的針對Windows和Linux的免費EDA工具 |
QCad | 一個用于二維設(shè)計及繪圖的CAD軟件 |
RealFlow | 三維工業(yè)流體和動力學模擬器 |
Nuke | 電影特效合成軟件 |
Autodesk MotionBuilder | 專業(yè)3D角色動畫軟件 |
名稱 | 說明 |
Full Tilt Poker | 在線撲克程序 |
PokerTH | 德州撲克游戲 |
刺猬大作戰(zhàn) | 一個基于百戰(zhàn)天蟲的開源游戲 |
Battle.net | 暴雪公司開發(fā)的游戲?qū)?zhàn)平臺 |
極品飛車 | EA公司出品的著名賽車類游戲 |
名稱 | 說明 |
Xconfig | Linux的Kernel配置工具 |
VirtualBox | 虛擬機軟件 |
AcetoneISO | 鏡像文件掛載軟件 |
KeePassX | KeePass的多平臺端口,它是微軟Windows的開源密碼管理器 |
Launchy | 一個開放源代碼的快捷啟動器 |
Recoll | 桌面搜索工具 |
EiskaltDC++ | 功能豐富齊全、專業(yè)實用的跨平臺文件共享軟件 |
GoldenDict | 一款開源的詞典軟件 |
Bitcoin | 比特幣 |
*請認真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。