
說(shuō)到指針,估計(jì)還是有很多小伙伴都還是云里霧里的,有點(diǎn)“知其然,而不知其所以然”。但不得不說(shuō),學(xué)了指針,C語(yǔ)言才能算是入門(mén)了。
當(dāng)我們談?wù)?c,c++ ,Java,Python的時(shí)候,有些語(yǔ)言不僅很難,而且對(duì)于大多數(shù)軟件開(kāi)發(fā)者來(lái)說(shuō)幾乎是無(wú)法理解的。這些語(yǔ)言被稱(chēng)為深?yuàn)W的編程語(yǔ)言,英文稱(chēng)為esoteric programming language,簡(jiǎn)稱(chēng)esolang。 下面是五種最難理解的語(yǔ)言,我試著用這些語(yǔ)言編寫(xiě)程序Hello World,貌似非常有趣的樣子。
你知道首款面向工業(yè)和物聯(lián)網(wǎng)應(yīng)用的嵌入式 eMMC 存儲(chǔ)設(shè)備嗎?2019年,西部數(shù)據(jù)(WD)推出了首款面向工業(yè)和物聯(lián)網(wǎng)應(yīng)用的嵌入式 eMMC 存儲(chǔ)設(shè)備,它就是 iNAND IX EM132 驅(qū)動(dòng)器。 其基于該公司的 64 層 BiCS3 3D TLC NAND 閃存打造,讀速高達(dá) 310 MB/s,輔以專(zhuān)為嵌入式、商業(yè)、工業(yè)等用途而設(shè)計(jì)的各項(xiàng)功能,提升了整體的可靠性和耐用性。
什么是嵌入式系統(tǒng)?他有什么作用?網(wǎng)絡(luò)連接一方面能夠?yàn)榍度胧较到y(tǒng)帶來(lái)巨大好處,另一方面卻可能威脅到設(shè)備及設(shè)備所構(gòu)建的物聯(lián)網(wǎng)應(yīng)用的完整性。然而,這一難題現(xiàn)在可以通過(guò)智能設(shè)計(jì)技術(shù)解決。只要使用了正確的基礎(chǔ)架構(gòu),聯(lián)網(wǎng)嵌入式和物聯(lián)網(wǎng)設(shè)備就可以利用在線服務(wù)確保長(zhǎng)期安全地保護(hù)網(wǎng)絡(luò),即使個(gè)別節(jié)點(diǎn)在某一時(shí)刻遭受攻擊。實(shí)現(xiàn)所需安全級(jí)別是一項(xiàng)極為復(fù)雜的工作,幸運(yùn)的是,市場(chǎng)上涌現(xiàn)出多種有效解決方案,如:Microsoft的Azure Sphere及其嵌入式Pluton安全子系統(tǒng),可提供一整套措施和工具來(lái)應(yīng)對(duì)不同威脅。
我們生活在一個(gè)特定的世界,幾乎每個(gè)人都在談?wù)摂?shù)據(jù)和潛在價(jià)值。繪制大量的原始數(shù)據(jù)是復(fù)雜且難以解釋的。近年來(lái),學(xué)習(xí)機(jī)器使我們能夠?qū)崿F(xiàn)在線公司迄今為止所做的大部分價(jià)值,但現(xiàn)在它們正在擴(kuò)展到物理世界。然而,對(duì)于許多人來(lái)說(shuō),傳感器數(shù)據(jù)和集成KI模型之間的路徑似乎幾乎無(wú)法逾越。
這是“玩轉(zhuǎn)嵌入式”專(zhuān)欄作者的自我介紹!
指針沒(méi)有指向一塊合法的內(nèi)存:定義了指針變量,但是沒(méi)有為指針?lè)峙鋬?nèi)存,即指針沒(méi)有指向一塊合法的內(nèi)存。淺顯的例子就不舉了,本文舉幾個(gè)比較隱蔽的例子。
在我們?nèi)粘>幋a中會(huì)發(fā)現(xiàn)有些功能代碼,會(huì)不斷的在不同的成員函數(shù)中用到,但是又不好將這些代碼獨(dú)立成一個(gè)成員函數(shù)。解決辦法之一就是寫(xiě)一個(gè)公共的函數(shù),不過(guò)函數(shù)用到的一些變量,就可能會(huì)成為全局變量。再說(shuō)為了復(fù)用這么一段代碼,就要單立出一個(gè)函數(shù),也不是很好維護(hù)。此時(shí)就可以用到仿函數(shù)了。
軟件跟硬件之間的界限已經(jīng)越來(lái)越模糊了,那么處于這個(gè)灰色地帶的,就是固件了。
一年一度的Arm技術(shù)大會(huì)正式更名為Arm DevSummit,同時(shí)突破地域限制將在線上舉辦,盛會(huì)也從1天擴(kuò)展至 2 天,11月4-5日,數(shù)千位軟硬件工程師、開(kāi)發(fā)者即將匯聚于此 。
作為一名后端工程師,工作中你肯定和 Redis 打過(guò)交道。Redis 為什么快,這點(diǎn)想必你也知道,至少為了面試也做過(guò)準(zhǔn)備。很多人知道 Redis 快僅僅因?yàn)樗腔趦?nèi)存實(shí)現(xiàn)的,對(duì)于其它原因倒是模棱兩可。
函數(shù)宏,即包含多條語(yǔ)句的宏定義,其通常為某一被頻繁調(diào)用的功能的語(yǔ)句封裝,且不想通過(guò)函數(shù)方式封裝來(lái)降低額外的彈棧壓棧開(kāi)銷(xiāo)。
嵌入式行業(yè)摸爬滾打這幾年,遇見(jiàn)有規(guī)范單元測(cè)試的項(xiàng)目寥寥無(wú)幾。歸根到底,無(wú)非是公司希望快速迭代出產(chǎn)品,有問(wèn)題等客戶(hù)反饋再說(shuō)。當(dāng)然,也有人認(rèn)為是嵌入式行業(yè)都是小而美的產(chǎn)品居多,沒(méi)有到一定量級(jí)之前,玩不起單元測(cè)試這種配置。不過(guò),出于對(duì)代碼穩(wěn)定性的追求,我認(rèn)為還是應(yīng)該著手了解一下單元測(cè)試的。畢竟,這是有效提高代碼說(shuō)服力的方式之一。
含有單片機(jī)的電子產(chǎn)品在量產(chǎn)的時(shí)候會(huì)用到.hex文件或者.bin。hex是十六進(jìn)制的,包含地址信息和數(shù)據(jù)信息,而bin文件是二進(jìn)制的,只有數(shù)據(jù)而不包含地址。任何文件都有一定的格式規(guī)范,hex文件同樣具有完整的格式規(guī)范。今天和大家分享一下,hex是如何解析的。
這次出差是為了升級(jí)程序解決Bug,用戶(hù)已經(jīng)將產(chǎn)品封裝起來(lái),無(wú)法開(kāi)蓋,只能使用CAN總線來(lái)更新程序,用Bootloader實(shí)現(xiàn)。其實(shí)就是通過(guò)上位機(jī)把.bin/hex文件以CAN通訊的方式發(fā)送給單片機(jī)并存儲(chǔ)在規(guī)定的Flash中。這個(gè)過(guò)程與手機(jī)端更新APP類(lèi)似。
在本篇文章中,我收集了很多經(jīng)驗(yàn)和方法。應(yīng)用這些經(jīng)驗(yàn)和方法,可以幫助我們從執(zhí)行速度和內(nèi)存使用等方面來(lái)優(yōu)化C語(yǔ)言代碼。
嵌入式系統(tǒng)是現(xiàn)在非?;鸨臇|西,嵌入式系統(tǒng),是一種“完全嵌入受控器件內(nèi)部,為特定應(yīng)用而設(shè)計(jì)的專(zhuān)用計(jì)算機(jī)系統(tǒng)”。
本文主要做科普,給小白看,因?yàn)槭紫?,嵌入式有不少組合名詞,例如嵌入式系統(tǒng),嵌入式軟件,Linux嵌入式,Android嵌入式,嵌入式Web,等等。
在一半的開(kāi)發(fā)平臺(tái)中,實(shí)驗(yàn)逐漸加深,我也在考慮用這個(gè)小項(xiàng)目開(kāi)發(fā)板做點(diǎn)什么。
全球電子設(shè)備和開(kāi)發(fā)服務(wù)提供商E-Link聯(lián)盟專(zhuān)家聯(lián)盟raspberrypi4。產(chǎn)品面向新用戶(hù)。