卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

c標(biāo)準(zhǔn)庫(kù)值得買(mǎi)嗎 stm32是用hal庫(kù),還是標(biāo)準(zhǔn)庫(kù)?懂行的介紹一下?

stm32是用hal庫(kù),還是標(biāo)準(zhǔn)庫(kù)?懂行的介紹一下?St以前介紹過(guò)標(biāo)準(zhǔn)庫(kù)函數(shù),包括寄存器版本和庫(kù)函數(shù)版本。注冊(cè)版本使用起來(lái)很麻煩。您需要檢查每個(gè)設(shè)置的芯片數(shù)據(jù)表。優(yōu)點(diǎn)是您可以熟悉芯片的寄存器配置。庫(kù)函

stm32是用hal庫(kù),還是標(biāo)準(zhǔn)庫(kù)?懂行的介紹一下?

St以前介紹過(guò)標(biāo)準(zhǔn)庫(kù)函數(shù),包括寄存器版本和庫(kù)函數(shù)版本。注冊(cè)版本使用起來(lái)很麻煩。您需要檢查每個(gè)設(shè)置的芯片數(shù)據(jù)表。優(yōu)點(diǎn)是您可以熟悉芯片的寄存器配置。庫(kù)函數(shù)是基于寄存器版本的二次包

介紹,它的優(yōu)點(diǎn)是寄存器版本的缺點(diǎn),使用方便,不再需要手動(dòng)配置寄存器,使用更方便。但它的缺點(diǎn)是Hal的優(yōu)點(diǎn),即每次修改MCU函數(shù)時(shí),都需要手工修改函數(shù),而且自修改不能保證正確性,不同MCU之間的程序代碼移植性不強(qiáng)。

Hal library,Hal是hardware abstraction layer的縮寫(xiě),中文名為:hardware abstraction layer,Hal library項(xiàng)目一般使用cube軟件生成項(xiàng)目。Hal庫(kù)是ST公司針對(duì)STM32單片機(jī)開(kāi)發(fā)的最新抽象層嵌入式軟件,更便于實(shí)現(xiàn)STM32產(chǎn)品的最大可移植性。其優(yōu)點(diǎn)是開(kāi)發(fā)工程師不需要關(guān)注MCU模型,只需要專(zhuān)注于功能軟件的開(kāi)發(fā)工作。它是未來(lái)的主要發(fā)展方向,并在不斷更新。建議您在正常使用時(shí),它會(huì)自動(dòng)更新或關(guān)閉。否則,將在更新前調(diào)試的代碼將無(wú)法正常工作。設(shè)置多維數(shù)據(jù)集軟件的方法點(diǎn)幫助,然后選擇手動(dòng)更新。詳見(jiàn)圖。

根據(jù)我們的工程師和我的研發(fā)經(jīng)驗(yàn),我們一開(kāi)始使用標(biāo)準(zhǔn)庫(kù)函數(shù)。后來(lái)我們發(fā)現(xiàn),St推出Hal庫(kù)后,我們逐漸轉(zhuǎn)向Hal庫(kù)的開(kāi)發(fā)。它的優(yōu)勢(shì)在于軟件代碼在不同芯片之間具有很強(qiáng)的可移植性,并且cube軟件生成的項(xiàng)目指定了自己代碼的位置。如果不按規(guī)定編寫(xiě),cube再次生成項(xiàng)目時(shí)會(huì)覆蓋自己的代碼,進(jìn)一步增強(qiáng)了代碼的可移植性。

另外,如果需要修改MCU的功能,如添加新的GPIO或串口,在使用標(biāo)準(zhǔn)庫(kù)函數(shù)時(shí),需要復(fù)制其他串口的初始化代碼,然后手動(dòng)修改。使用Hal庫(kù)時(shí),您不需要這樣做。您只需將設(shè)置添加到多維數(shù)據(jù)集并生成它們。

多維數(shù)據(jù)集會(huì)自動(dòng)為您生成初始化代碼。

綜上所述,建議新手直接使用Hal庫(kù),使用起來(lái)更方便,開(kāi)發(fā)所需的軟件功能也更快。復(fù)雜的寄存器配置工作可以交給cube軟件,這也符合未來(lái)發(fā)展的主流思路。

c 標(biāo)準(zhǔn)庫(kù)中為什么沒(méi)有網(wǎng)絡(luò)庫(kù)?

也可能是各平臺(tái)提供的最優(yōu)網(wǎng)絡(luò)編程模型不同,甚至可以進(jìn)行優(yōu)化。所以,我認(rèn)為標(biāo)準(zhǔn)化限制了游戲空間,因?yàn)樗也坏筋?lèi)似最優(yōu)解的解。

就像epoll是一個(gè)所謂的反應(yīng)堆模型,而IOCP是一個(gè)前置模型一樣。因此,即使目前的文件系統(tǒng)庫(kù)變成了標(biāo)準(zhǔn)庫(kù),但網(wǎng)絡(luò)庫(kù)卻不是。

或者,這一切都源于C的哲學(xué):找到最接近事物本質(zhì)的最佳解決方案。如果沒(méi)有,請(qǐng)使用第三方或您自己的解決方案。但是,我們不排除將來(lái)會(huì)考慮引入替代解決方案(標(biāo)準(zhǔn)庫(kù)的可變替代解決方案,就像Java的棄用解決方案一樣)。

為什么有很多出名開(kāi)源的C/C 方面的高性能網(wǎng)絡(luò)庫(kù),比如libevent,boost-asio,有些企業(yè)還要自己寫(xiě)?

是構(gòu)建輪子還是直接使用開(kāi)源庫(kù),我認(rèn)為,很大程度上取決于部門(mén)負(fù)責(zé)人的個(gè)人喜好。曾幾何時(shí),c開(kāi)發(fā)人員熱衷于重新構(gòu)建輪子,那么為什么有些企業(yè)要自己編寫(xiě)呢?我在項(xiàng)目開(kāi)始時(shí)不知道這個(gè)庫(kù)的存在,我不想以后再介紹它。

2)許多第三方庫(kù)依賴(lài)于許多其他第三方庫(kù)。要引進(jìn)a館,就得引進(jìn)B館、C館、D館,這無(wú)疑增加了院系成員的學(xué)習(xí)成本。

3)第三方開(kāi)源庫(kù)通常會(huì)頻繁更新。如果你知道有一個(gè)bug,你想更新它嗎?基礎(chǔ)庫(kù)的更新無(wú)疑會(huì)花費(fèi)更多的開(kāi)發(fā)時(shí)間和測(cè)試時(shí)間。

4)使項(xiàng)目整體可控。一旦引入的開(kāi)放源代碼庫(kù)出現(xiàn)問(wèn)題并且項(xiàng)目團(tuán)隊(duì)不熟悉它,這將是災(zāi)難性的。

5)現(xiàn)有開(kāi)源庫(kù)過(guò)于復(fù)雜,學(xué)習(xí)成本高,團(tuán)隊(duì)成員水平參差不齊。

最后,附上一本我前段時(shí)間讀過(guò)的書(shū)。

本文是作者《一個(gè)程序員的奮斗史》悟空問(wèn)答原創(chuàng)文章,未經(jīng)允許轉(zhuǎn)載,抄襲將被追究

想自學(xué)C語(yǔ)言,有哪些書(shū)值得一看?

C語(yǔ)言是外國(guó)人發(fā)明的。如果可能的話(huà),要看外國(guó)人的教材。最好使用英文版本,這是最原始的。英語(yǔ)不好的學(xué)生也應(yīng)該選擇中文版的外國(guó)人教材。我推薦兩本教材,一本是譚教授的C程序設(shè)計(jì),另一本是最新版本的C primer plus。

本書(shū)非常適合不懂C語(yǔ)言的初學(xué)者,但是一些基本的計(jì)算機(jī)概念還是需要知道的,比如CPU、內(nèi)存、文件、計(jì)算機(jī)原理等

C編程本書(shū)很容易理解,沒(méi)有晦澀難懂的東西,只要你能基本理解,就不會(huì)有問(wèn)題。

整本書(shū)的結(jié)構(gòu)也非常合理,從最簡(jiǎn)單的C語(yǔ)言介紹,到基本的數(shù)據(jù)結(jié)構(gòu),再到C程序的三種控制結(jié)構(gòu)和功能,再到最后的文件操作,循序漸進(jìn)。

讀完C編程教材后,您可以看一看C primer plus的書(shū)。這本書(shū)是一個(gè)外國(guó)人寫(xiě)的。

外國(guó)人編寫(xiě)的教科書(shū)最大的特點(diǎn)之一就是比較冗長(zhǎng)。對(duì)于一個(gè)知識(shí)點(diǎn)會(huì)占用更多的空間,而且語(yǔ)言也更口語(yǔ)化。所以需要學(xué)習(xí)的學(xué)生要有一點(diǎn)耐心來(lái)閱讀整本書(shū)。

書(shū)中會(huì)有大量的C程序代碼案例。隨著知識(shí)點(diǎn)的不斷深入,不完善的C程序代碼也會(huì)不斷改進(jìn)。在改進(jìn)C程序代碼時(shí)要特別注意知識(shí)點(diǎn)。

本書(shū)課后練習(xí)也很有特色,多部分應(yīng)用。建議重新做一遍練習(xí),邊做邊總結(jié),以加深對(duì)C語(yǔ)言的認(rèn)識(shí)。

以上是推薦的兩本C編程書(shū)籍。后續(xù)可根據(jù)自己的實(shí)際情況選擇其他C程序書(shū)籍。

linux下C標(biāo)準(zhǔn)庫(kù)是動(dòng)態(tài)庫(kù)還是靜態(tài)庫(kù),還是兩種庫(kù)都提供了?

Linux的函數(shù)庫(kù)包括兩種:靜態(tài)庫(kù)和共享庫(kù)(動(dòng)態(tài)庫(kù))。靜態(tài)庫(kù)的代碼在編譯時(shí)與開(kāi)發(fā)人員的應(yīng)用程序相連接,動(dòng)態(tài)庫(kù)的實(shí)際程序在運(yùn)行時(shí)加載。由于動(dòng)態(tài)庫(kù)不包含庫(kù)函數(shù)的實(shí)現(xiàn)代碼,而只包含對(duì)函數(shù)庫(kù)的引用,程序代碼規(guī)模相對(duì)較小,動(dòng)態(tài)庫(kù)的擴(kuò)展性較差。因此,靜態(tài)鏈接庫(kù)包括。A和版本號(hào)。你可能測(cè)試不一樣,實(shí)現(xiàn)代碼也可能不一樣。動(dòng)態(tài)庫(kù)通常做得很好,而且通常比靜態(tài)庫(kù)好。當(dāng)然,這些功能已經(jīng)實(shí)現(xiàn)了。我想我不太熟悉的時(shí)候最好用動(dòng)態(tài)庫(kù)。因?yàn)?,如果您的靜態(tài)庫(kù)在內(nèi)存中被多次調(diào)用,那么將有許多您調(diào)用的靜態(tài)庫(kù)實(shí)現(xiàn)代碼,這些代碼將被重復(fù)并浪費(fèi)內(nèi)存,并且在程序執(zhí)行時(shí)將調(diào)用動(dòng)態(tài)庫(kù)