各位看官好,上一篇文章我們聊了一下關(guān)于OTA升級過程中,新的軟件包是如何從開發(fā)者的電腦上,安全的下載到嵌入式設(shè)備中的。這個流程似乎很簡單,不就是下載一個文件而已嘛,怎么還值得寫成一篇文章呢?其實(shí)這不僅僅是下載文件這么簡單,這其中涉及到如何對眾多的終端設(shè)備進(jìn)行批量升級的策略問題。如...
在最近的兩篇文章中,我們從概念和流程上梳理了:一個終端設(shè)備如何把一個固件,安全無誤的從服務(wù)器上,下載到本地。文章鏈接在此:物聯(lián)網(wǎng)設(shè)備OTA軟件升級之:升級包下載過程之旅物聯(lián)網(wǎng)設(shè)備OTA軟件升級之:完全升級和增量升級這篇文章就繼續(xù)往下深入,以一個實(shí)際的ESP32項(xiàng)目,來完整的梳理一...
使用Linux系統(tǒng)的開發(fā)者,很多人都有自己喜歡的系統(tǒng)命令,下面這個幾個命令令是我平常用的比較多的,分享一下。我不會教科書般的羅列每個指令的詳細(xì)用法,只是把日常開發(fā)過程中的一些場景下,經(jīng)常使用的命令常見用法進(jìn)行演示。希望對您有小小的幫助~~也非常歡迎各位大俠,在留言區(qū)分享您的私房命...
物聯(lián)網(wǎng)系統(tǒng)設(shè)備端的開發(fā)不需要網(wǎng)關(guān)的設(shè)備需要網(wǎng)關(guān)的設(shè)備WiFi類設(shè)備物聯(lián)網(wǎng)平臺開發(fā)業(yè)務(wù)應(yīng)用開發(fā)物聯(lián)網(wǎng)的概念已經(jīng)被炒了好多年了,奇怪的是:市場中對這個概念的反應(yīng)總是不慍不火。隨著5G的迅速普及,不知道是否能夠再次把這個領(lǐng)域帶火起來。但是不管怎樣,很多大學(xué)已經(jīng)把物聯(lián)網(wǎng)這個專業(yè)給坐實(shí)了。...
【Linux從頭學(xué)】是什么古老的Intel8086處理器主存儲器是什么?寄存器是什么?三個總線CPU如何對內(nèi)存進(jìn)行尋址?我們是如何控制CPU的?CPU執(zhí)行指令流程【Linux從頭學(xué)】是什么這兩年多以來,我的本職工作重心一直是在x86Linux系統(tǒng)這一塊,從驅(qū)動到中間層,再到應(yīng)用層...
什么是代碼段?什么是數(shù)據(jù)段?數(shù)據(jù)的類型和長度尋址范圍棧實(shí)模式和保護(hù)模式Linux中的分段策略飯是一口一口的吃,計算機(jī)也是一步一步的發(fā)展,例如下面這張英特爾公司的CPU型號歷史:為了利用性能越來越強(qiáng)悍的計算機(jī),操作系統(tǒng)的也是在逐步變得膨脹和復(fù)雜。為了從最底層來學(xué)習(xí)操作系統(tǒng)的一些基本...
一、前言二、示例代碼說明三、Linux系統(tǒng)下操作四、Windows系統(tǒng)下操作五、總結(jié)一、前言在上一篇文章中(使用cmake來搭建跨平臺的應(yīng)用程序框架:C語言版本),我們以源代碼的形式,演示了利用利用cmake這個構(gòu)建工具,來編譯跨平臺的動態(tài)庫、靜態(tài)庫和應(yīng)用程序。這篇文章描述的是同...
一、前言二、問題描述三、把類型改為void指針類型四、總結(jié)一、前言昨天在編譯代碼的時候,之前一直O(jiān)K的一個地方,卻突然出現(xiàn)了好幾個Warning!本著強(qiáng)迫癥要消滅一切警告的做法,最終定位到:是結(jié)構(gòu)體內(nèi)部,指向結(jié)構(gòu)體類型的指針成員變量導(dǎo)致的問題。這個問題,也許永遠(yuǎn)不會碰到,之所以被...
一、前言二、glib簡介三、線程庫的設(shè)計四、總結(jié)一、前言這篇文章,按照下面這2張圖,來描述glib在Linux和Windows平臺上,是如何來進(jìn)行線程庫的設(shè)計的。Linux平臺:Windows平臺:最近寫了幾篇關(guān)于跨平臺的應(yīng)用程序設(shè)計思路,有些小伙伴在后臺留言詢問關(guān)于一些通用的跨...
幾個重要的段寄存器Linux2.6中的線性地址區(qū)間一個“完整”的8086匯編程序前兩篇文章,我們一起學(xué)習(xí)了8086處理器中關(guān)于CPU、內(nèi)存的基本使用方式,重點(diǎn)對段寄存器和內(nèi)存的尋址方式進(jìn)行了介紹。可能有些小伙伴會對此不屑:現(xiàn)在都是多核的現(xiàn)代處理器,操作系統(tǒng)已經(jīng)變得非常的強(qiáng)大,為何...
什么是WSL?什么是WSL2?激活WSL服務(wù)安裝Ubuntu-18.04操作系統(tǒng)通過ssh遠(yuǎn)程登錄編譯Hello,World!作為一名嵌入式軟件開發(fā)工程師,在Linux系統(tǒng)下寫代碼、編譯、調(diào)試是避免不了的事情。但是很少有同學(xué)會直接拿一臺Linux真機(jī)來作為工作平臺,除非是那種利用...
示例代碼說明執(zhí)行主程序初始狀態(tài)執(zhí)行代碼前5句準(zhǔn)備調(diào)用子程序調(diào)用子程序子程序寄存器入棧保護(hù)計算字符串長度返回結(jié)果寄存器出棧返回指令ret在任何一門編譯型語言中,棧操作都是非常重要的。利用棧的后進(jìn)先出特性,可以很方便的解決一些棘手的問題,以至于CPU單獨(dú)分配了push和pop這兩個命...
0xFFFF:0x00000xF000:0xE05B0x0000:0x7C00在第一篇文章中,我們就提到,現(xiàn)代操作系統(tǒng)是從最古老的8086系統(tǒng)一步一步發(fā)展而來的。處理器廠商為了向后兼容,很多底層相關(guān)的原理都是一樣的(如果不兼容,就會丟棄市場份額)。特別是從系統(tǒng)上電之后,一直到操作...
程序的結(jié)構(gòu)bootloader把程序從硬盤讀取到內(nèi)存代碼重定位程序入口點(diǎn)重定位段表重定位跳轉(zhuǎn)到程序的入口地址操作系統(tǒng)程序的執(zhí)行在上一篇文章中Linux從頭學(xué)05-系統(tǒng)啟動過程中的幾個神秘地址,你知道是什么意思嗎?,我們以幾個重要的內(nèi)存地址為線索,介紹了x86系統(tǒng)在上電開機(jī)之后:C...
作?者:道哥,10年的嵌入式開發(fā)老兵。專注于:C/C、Linux操作系統(tǒng)、應(yīng)用程序設(shè)計、物聯(lián)網(wǎng)、單片機(jī)和嵌入式開發(fā)等領(lǐng)域。公眾號回復(fù)【書籍】,獲取Linux、嵌入式領(lǐng)域經(jīng)典書籍。轉(zhuǎn)?載:歡迎轉(zhuǎn)載文章,轉(zhuǎn)載需注明出處。中斷向量與中斷描述符中斷的分類內(nèi)部中斷外部中斷中斷號中斷向量和中...
xiaoguaixh
liqinglong1023