軟考系統架構師 — 4 嵌入式軟件

目錄

4.1 考點分析

4.2 嵌入式微處理器

4.2.1嵌入式微處理器體系結構

5.2.2 嵌入式微處理器分類

4.2.3 多核處理器

4.3 嵌入式軟件

4.4 嵌入式系統

4.4.1 嵌入式系統的組成

4.4.2 嵌入式系統分類

4.4.3 嵌入式數據庫系統DBMS

4.4.4 嵌入式操作系統OS

4.4.5 嵌入式實時系統

4.5 嵌入式軟件設計


4.1 考點分析

考試分值:本章節偶爾會考到,一般也是占3-5分。

考點內容: 本章節之前考的時候就一直超綱,本來以為改版后會增加內容,誰知道第二版教材2.4關于嵌入式的描述十分簡略,只介紹了基本概念,所以大家還是以我們視頻為主了,但真的考到,估計還是會有50%超綱內容,只能通過每年直播講題補充。主要變化在嵌入式系統組成和特點說法改變。

4.2 嵌入式微處理器

4.2.1嵌入式微處理器體系結構

(1)馮諾依曼結構:傳統計算機采用馮諾依曼(Von Neumann)結構,也稱普林斯頓結構,是一種將程序指令存儲器和數據存儲器合并在一起的存儲器結構。馮?諾依曼結構的計算機程序和數據共用一個存儲空間,程序指令存儲地址和數據存儲地址指向同一個存儲器的不同物理位置。

  • 采用單一的地址及數據總線,程序指令和數據的寬度相同。
  • 處理器執行指令時,先從儲存器中取出指令解碼,再取操作數執行運算,即使單條指令也要耗費兒個甚至幾十個周期,在高速運算時,在傳輸通道上會出現瓶頸效應。

(2)哈佛結構:哈佛結構是一種并行體系結構,它的主要特點是將程序和數據存儲在不同的存儲空間中,即程序存儲器和數據存儲器是兩個相互獨立的存儲器,每個存儲器獨立編址、獨立訪問。

  • 與兩個存儲器相對應的是系統中的兩套獨立的地址總線和數據總線。
  • 這種分離的程序總線和數據總線可允許在一個機器周期內同時獲取指令字(來自程序存儲器)和操作數(來自數據存儲器),從而提高了執行速度,使數據的吞吐率提高了1倍。

5.2.2 嵌入式微處理器分類

根據嵌入式微處理器的字長寬度:可分為4位、8位、16位、32位和64位。一般把16位及以下的稱為嵌入式微控制器(Embedded Micro Controller),32位及以上的稱為嵌入式微處理器。

根據系統集成度劃分:可分為兩類,一種是微處理器內部僅包含單純的中央處理器單元,稱為一般用途型微處理器:另一種則是將CPU、ROM、RAM及I/O等部件集成到同一個芯片上,稱為單芯片微控制器(Single Chip Microcontroller)。

根據用途分類:一般分為嵌入式微控制器MCU、嵌入式微處理器MPU、嵌入式數字信號處理器DSP、嵌入式片上系統SOC等。

根據嵌入式微控制器MCU典型代表是單片機,其片上外設資源比較豐富,適合于控制。MCU芯片內部集成ROM/EPROM、RAM、總線、總線邏輯、定時/計數器、看門狗、I/O、串行口、脈寬調制輸出、A/D、D/A、Flash RAM、EEPROM等各種必要功能和外設。和嵌入式微處理器相比,微控制器的最大特點是單片化體積大大減小,從而使功耗和成本下降、可靠性提高,其片上外設資源一般較豐富,適合于控制,是嵌入式系統工業的主流。

  • 嵌入式微處理器MPU由通用計算機中的CPU演變而來。它的特征是具有32位以上的處理器,具有較高的性能,當然其價格也相應較高。但與計算機處理器不同的是,在實際嵌入式應用中,只保留和嵌入式應用緊密相關的功能硬件去除其他的冗余功能部分,這樣就以最低的功耗和資源實現嵌入式應用的特殊要求。與工業控制計算機相比,嵌入式微處理器具有體積小、重量輕、成本低可靠性高的優點。目前常見的有ARM、MIPS、POWER PC等。
  • 嵌入式數字信號處理器DSP是專門用于信號處理方面的處理器,其在系統結構和指令算法方面進行了特殊設計,具有很高的編譯效率和指令的執行速度。采用哈佛結構,流水線處理,其處理速度比最快的CPU還快10-50倍。在數字濾波、FFT、譜分析等各種儀器上DSP獲得了大規模的應用。
  • 嵌入式片上系統SOC是追求產品系統最大包容的集成器件。SOC最大的特點是成功實現了軟硬件無縫結合,直接在處理器片內嵌入操作系統的代碼模塊。是一個有專用目標的集成電路,其中包含完整系統并有嵌入軟件的全部內容。

4.2.3 多核處理器

多核指多個微處理器內核,是將兩個或更多的微處理器封裝在一起,集成在一個電路中。多核處理器是單枚芯片,能夠直接插入單一的處理器插槽中。多核與多CPU相比,很好的降低了計算機系統的功耗和體積。在多核技術中,由操作系統軟件進行調度,多進程,多線程并發都可以。

2個或多個內核工作協調實現方式。

  • 對稱多處理技術SMP:將2顆完全一樣的處理器封裝在一個芯片內,達到雙倍或接近雙倍的處理性能,節省運算資源。
  • 非對稱處理技術AMP:2個處理內核彼此不同,各自處理和執行特定的功能,在軟件的協調下分擔不同的計算任務。多核CPU的調度。

多核CPU環境下進程的調度算法一般有全局隊列調度和局部隊列調度兩種。

  • 全局隊列調度:是指操作系統維護一個全局的任務等待隊列,當系統中有一個CPU空閑時,操作系統就從全局任務等待隊列中選取就緒任務開始執行,CPU核心利用率高。
  • 局部隊列調度:是操作系統為每個CPU內核維護一個局部的任務等待隊列,當系統中有一個CPU內核空閑時,就從該核心的任務等待隊列中選取適當的任務執行,優點是無需在多個cPU之間切換。

【真題】嵌入式處理器是嵌入式系統的核心部件,一般可分為嵌入式微處理器(MPU)、微控制器(MCU、數字信號處理器(DSP和片上系統SOC)。以下敘述中,錯誤的是(A)。

A.MPU在安全性和可靠性等方面進行增強,適用于運算量較大的智能系統。

B.MCU典型代表是單片機,體積小從而使功耗和成本下降。

C.DSP處理器對系統結構和指令進行了特殊設計,適合數字信號處理。

D.SOC是一個有專用目標的集成電路,其中包括完整系統并有嵌入式軟件的全部內容。

【真題】以下關于多核處理器的說法中,不正確的是(B)。

A.采用多核處理器可以降低計算機系統的功耗和體積。

B.SMP、BMP和AMP是多核處理器系統通常采用的三種結構,采用哪種結構與應用場景相關,而無須考慮硬件的組成差異。

C.在多核處理器中,計算機可以同時執行多個進程,而操作系統中的多個線程也可以并行執行。

D.多核處理器是將兩個或更多的獨立處理器封裝在一起,集成在一個電路中。

解析:A 選項多核可合理分配任務,降低功耗、減小體積;B 選項多核結構選擇既與應用場景有關,也受硬件組成差異影響,該項說不考慮硬件組成錯誤;C 選項多核有多個核心,可使多進程、多線程并行執行;D 選項多核處理器是將多個獨立處理器封裝集成在一個電路中。所以不正確的是 B 。

4.3 嵌入式軟件

嵌入式軟件是指應用在嵌入式計算機系統當中的各種軟件,除了具有通用軟件的一般特性,還具有一些與嵌入式系統相關的特點,包括規模較小、開發難度大、實時性和可靠性要求高、要求固化存儲。嵌入式軟件分類:

  • 系統軟件:控制和管理嵌入式系統資源,為嵌入式應用提供支持的各種軟件,如設備驅動程序、嵌入式操作系統、嵌入式中間件等。
  • 應用軟件:嵌入式系統中的上層軟件,定義了嵌入式設備的主要功能和用途,并負責與用戶交互,一般面向特定的應用領域,如飛行控制軟件、手機軟件、地圖等。
  • 支撐軟件:輔助軟件開發的工具軟件,如系統分析設計工具、在線仿真工具交叉編譯器等。

板級支持包(BSP):是介于主板硬件和操作系統中驅動層程序之間的一層,一般認為它屬于操作系統一部分,主要是實現對操作系統的支特,為上層的驅動程序提供訪問硬件設備寄存器的函數包,使之能夠更好的運行于硬件主板。BSP主要包括兩個方面的內容:導加載程序Bootloader和設備驅動程序。具體功能包括:

  • 單板硬件初始化,主要是CPU的初始化,為整個軟件系統提供底層硬件支持
  • 為操作系統提供設備驅動程序和系統中斷服務程序
  • 定制操作系統的功能,為軟件系統提供一個實時多任務的運行環境
  • 初始化操作系統,為操作系統的正常運行做好準備。

BootLoader是嵌入式系統加電后運行的第一段軟件代碼,是在操作系統內核運行之前運行的一小段程序,通過這段程序,可以初始化硬件設備、建立內存空間的映射圖,從而將系統的軟硬件環境設置到一個合適的狀態,以便為最終調用操作系統內核做好準備。一般包括以下功能:

  • 片級初始化:主要完成微處理器的初始化,包括設置微處理器的核心寄存器和控制寄存器、微處理器的核心工作模式及其局部總線模式等。片級初始化把微處理器從上電時的默認狀態逐步設置成系統所要求的工作狀態。這是一個純硬件的初始化過程。
  • 板級初始化:通過正確地設置各種寄存器的內容來完成微處理器以外的其他硬件設備的初始化。例如,初始化LED顯示設備、初始化定時器、設置中斷控制寄存器、初始化串口通信、初始化內存控制器、建立內存空間的地址映射等。在此過程中,除了要設置各種硬件寄存器以外,還要設置某些軟件的數據結構和參數。因此,這是一個同時包含有軟件和硬件在內的初始化過程。
  • 加載內核(系統級初始化):將操作系統和應用程序的映像從s紈存儲器復制到系統的內存當中,然后跳轉到系統內核的第一條指令處繼續執行。

在一個嵌入式系統當中,操作系統是可能有也可能無的。但無論如何,設備驅動程序是必不可少的。所謂的設備驅動程序,就是一組庫函數,用來對硬件進行初始化和管理,并向上層軟件提供良好的訪問接口。

對于不同的硬件設備來說,它們的功能是不一樣的,所以它們的設備驅動程序也是不一樣的。但是一般來說,大多數的設備驅動程序都會具備以下的一些基本功能。

  • 硬件啟動:在開機上電或系統重啟的時候,對硬件進行初始化。
  • 硬件關閉:將硬件設置為關機狀態。
  • 硬件停用:暫停使用這個硬件。
  • 硬件啟用:重新啟用這個硬件。
  • 讀操作:從硬件中讀取數據。
  • 寫操作:往硬件中寫入數據。

4.4 嵌入式系統

4.4.1 嵌入式系統的組成

嵌入式系統的組成一般嵌入式系統由嵌入式處理器、相關支撐硬件、嵌入式操作系統、支撐軟件以及應用軟件組成。

(1)嵌式處理器。由于嵌入式系統一般是在惡劣的環境條件下工作,與一般處理器相比,嵌入式處理器應可抵抗惡劣環境的影響,比如高溫、寒冷、電磁、加速度等環境因素。為適應惡劣環境,嵌入式處理器芯片除滿足低功耗、體積小等需求外,根據不同環境需求,其工藝可分為民用、工業和軍用等三個檔次。

(2)相關支撐硬件。相關支撐硬件是指除嵌入式處理器以外的構成系統的其他硬件,包括存儲器、定時器、總線、1O接口以及相關專用硬件。

(3)嵌入式操作系統。嵌入式操作系統是指運行在嵌入式系統中的基礎軟件,主要用于管理計算機資源和應用軟件。與通用操作系統不同,嵌入式操作系統應具備實時性、可剪裁性和安全性等特征。

(4)支撐軟件。支撐軟件是指為應用軟件開發與運行提供公共服務、軟件開發、調試能力的軟件,支撐軟件的公共服務通常運行在操作系統之上,以庫的方式被應用軟件所引用。

(5)應用軟件。應用軟件是指為完成嵌入式系統的某一特定目標所開發的軟件。

4.4.2 嵌入式系統分類

根據不同用途可將嵌入式系統劃分為嵌入實時系統和嵌入非實時系統兩種,而實時系統又可分為強實時系統和弱實時系統。如果從安全性要求看,嵌入式系統還可分為安全攸關系統和非安全攸關系統。嵌入式系統分為硬件層、抽象層、操作系統層、中間件層和應用層等5層。

(1)硬件層。硬件層主要是為嵌入式系統提供運行支撐的硬件環境,其核心是微處理器、存儲器(ROM、SDRAM、Flash等)、I/O接口(A/D、D/A、I/O等)和通用設備以及總線、電源、時鐘等。

(2)抽象層。在硬件層和軟件層之間為抽象層,主要實現對硬件層的硬件進行抽象,為上層應用(操作系統〉提供虛擬的硬件資源:板級支持包(BSP)是一種硬件驅動軟件,它是面向硬件層的硬件芯片或電路進行驅動,為上層操作系統提供對硬件進行管理的支持。

(3)操作系統層。操作系統層主要由嵌入式操作系統、文件系統、圖形用戶接口、網絡系統和通用組件等可配置模塊組成。

(4)中間件層。中間件層一般位于操作系統之上,管理計算機資源和網絡通信,中間件層是連接兩個獨立應用的橋梁。

(5)應用層。應用層是指嵌入式系統的具體應用,主要包括不同的應用軟件。

4.4.3 嵌入式數據庫系統DBMS

一個完整的EDBMS由若干子系統組成,包括主數據庫、同步服務器、嵌入式數據庫和連接網絡等幾個子系統。嵌入式移動數據庫在實際應用中必須解決好數據的一致性(復制性)、高效的事務處理和數據的安全性等關鍵問題。

4.4.4 嵌入式操作系統OS

與通用操作系統相比,EOS主要有以下特點:

(1)微型化。E0S的運行平臺不是通用計算機,而是嵌入式系統。這類系統一般沒有大容量的內存,幾乎沒有外存,因此,E0S必須做得小巧,以占用盡量少的系統資源。

(2)代碼質量高。在大多數嵌入式應用中,存儲空間依然是寶貴的資源,這就要求程序代碼的質量要高,代碼要盡量精簡。

(3)專業化。嵌入式系統的硬件平臺多種多樣,處理器的更新速度快,每種處理器都是針對不同的應用領域而專門設計的。因此,E0S要有很好適應性和移植性,還要支持多種開發平臺。

(4)實時性強。嵌入式系統廣泛應用于過程控制、數據采集、通信、多媒體信息處理等要求實時響應的場合,因此,實時性成為0S的又一特點。

(5)可裁減和可配置。應用的多樣性要求EOS具有較強的適應能力,能夠根據應用的特點和具體要求進行靈活配置和合理裁減,以適應微型化和專業化的要求。

4.4.5 嵌入式實時系統

嵌入式實時系統:一種完全嵌入受控器件內部,為特定應用而設計的專用計算機系統。在嵌入式實時系統中,要求系統在投入運行前即具有確定性和可預測性。

  • 可預測性:指系統在運行之前,其功能、響應特性和執行結果是可預測的:
  • 確定性:指系統在給定的初始狀態和輸入條件下,在確定的時間內給出確定的結果。

實時操作系統RTOS的特點:當外界事件或數據產生時,能夠接受并以足夠快的速度予以處理,其處理的結果又能在規定的時間之內來控制生產過程或對處理系統做出快速響應,并控制所有實時任務協調一致運行。因而,提供及時響應和高可靠性是其主要特點。

實時操作系統有硬實時和軟實時之分,硬實時要求在規定的時間內必須完成操作,這是在操作系統設計時保證的;軟實時則只要按照任務的優先級,盡可能快地完成操作即可。

實時操作系統的特征:

(1)高精度計時系統:計時精度是影響實時性的個重要因素,在實時應用系統中,經常需要精確確定實時地操作某個設備或執行某個任務,或精確的計算一個時間函數。這些不僅依賴于一些硬件提供的時鐘精度,也依賴于實時操作系統實現的高精度計時功能。

(2)多級中斷機制:一個實時應用系統通常需要處理多種外部信息或事件,但處理的緊迫程度有輕重緩急之分。有的必須立即作出反應,有的側可以延后處理。因此,需要建立多級中斷嵌套處理機制,以確保對緊迫程度較高的實時事件進行及時響應和處理。

(3)實時調度機制:實時操作系統不僅要及時響應實時事件中斷,同時也要及時調度運行實時任務。但是,處理機調度并不能隨心所欲的進行,因為涉及到兩個進程之間的切換只能在確保“安全切換”的時間點上進行,實時調度機制包括兩個方面,一是在調度策略和算法上保證優先調度實時任務;二是建立更多“安全切換”時間點,保證及時調度實時任務。

【真題】以下關于RTOS(實時操作系統)的敘述中,不正確的是(A)。

A.RTOS不能針對硬件變化進行結構與功能上的配置及裁剪。

B.RTOS可以根據應用環境的要求對內核進行裁剪和重配。

C.RToS的首要任務是調度一切可利用的資源來完成實時控制任務。

D.RTOS實質上就是一個計算機資源管理程序,需要及時響應實時事件和中斷。
解析:RTOS(實時操作系統)具備靈活性,能針對硬件變化在結構與功能上進行配置及裁剪,以適配不同硬件環境,A 選項說法錯誤;它可依據應用環境要求對內核裁剪和重配 ,B 選項正確;其首要任務是調度資源完成實時控制任務,C 選項正確;RTOS 本質是計算機資源管理程序,需及時響應實時事件和中斷,D 選項正確。

【真題】以下描述中,(B)不是嵌入式操作系統的特點。

A.面向應用,可以進行裁剪和移植。

B.用于特定領域,不需要支持多任務。

C.可靠性高,無需人工干預獨立運行,并處理各類事件和故障。

D.要求編碼體積小,能夠在嵌入式系統的有效存儲空間內運行。
解析:嵌入式操作系統面向應用,可裁剪移植,A 選項是其特點;嵌入式操作系統常應用于特定領域,很多情況下需要支持多任務,如智能設備需同時處理多種功能任務,B 選項不是其特點;它可靠性高,能獨立運行處理各類事件和故障 ,C 選項是其特點;因嵌入式系統存儲空間有限,要求編碼體積小,D 選項是其特點。

4.5 嵌入式軟件設計

交叉編譯:嵌入式軟件開發所采用的編譯為交叉編譯。所謂交叉編譯就是在一個平臺上生成可以在另一個平臺上執行的代碼。編譯的最主要的工作就在將程序轉化成運行該程序的CPU所能識別的機器代碼,由于不同的體系結構有不同的指令系統。因此,不同的CPU需要有相應的編譯器,而交叉編譯就如同翻譯樣,把相同的程序代碼翻譯成不同CPU的對應可執行二進制文件。嵌入式系統的開發需要借助宿主機(通用計算機)來編譯出目標機的可執行代碼。

交叉調試:嵌入式軟件經過編譯和鏈接后即進入調試階段,調試是軟件開發過程中必不可少的一個環節,嵌入式軟件開發過程中的交叉調試與通用軟件開發過程中的調試方式有很大的差別。

在嵌入式軟件開發中,調試時采用的是在宿主機和目標機之間進行的交叉調試調試器仍然運行在宿主機的通用操作系統之上,但被調試的進程卻是運行在基于特定硬件平臺的嵌入式操作系統中,調試器和被調試進程通過串口或者網絡進行通信,調試器可以控制、訪問被調試進程,讀取被調試進程的當前狀態,并能夠改變被調試進程的運行狀態。

【真題】以下關于嵌入式系統開發的敘述,正確的是(C)。

A.宿主機與目標機之間只需要建立邏輯連接

B.宿主機與目標機之間只能采用串口通信方式

C.在宿主機上必須采用交叉編譯器來生成目標機的可執行代碼

D.調試器與被調試程序必須安裝在同一臺機器上

解析:A 選項宿主機與目標機之間不僅要建立邏輯連接,還需要建立物理連接(如通過串口、USB 等方式連接 ),才能實現數據傳輸等操作,該選項錯誤。B 選項宿主機與目標機之間的通信方式有多種,除了串口通信,還可以采用 USB、以太網等通信方式,并非只能采用串口通信,該選項錯誤。C 選項由于宿主機(一般是通用計算機,如 PC )和目標機(嵌入式設備)的硬件架構、操作系統等可能不同,所以在宿主機上需要采用交叉編譯器,將源代碼編譯成目標機能夠運行的可執行代碼,該選項正確。D 選項在嵌入式系統開發中,調試器可以運行在宿主機上,被調試程序運行在目標機上,通過一定的連接方式(如 JTAG、串口等 )進行調試,并非必須安裝在同一臺機器上,該選項錯誤。

    本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
    如若轉載,請注明出處:http://www.pswp.cn/pingmian/75556.shtml
    繁體地址,請注明出處:http://hk.pswp.cn/pingmian/75556.shtml
    英文地址,請注明出處:http://en.pswp.cn/pingmian/75556.shtml

    如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

    相關文章

    RocketMQ 中的 ProducerManager 組件剖析

    一、引言 在分布式系統的消息傳遞領域,RocketMQ 以其高性能、高可用性和強大的擴展性脫穎而出。ProducerManager 作為 RocketMQ 中的一個關鍵組件,在消息生產環節發揮著至關重要的作用。它負責管理消息生產者(Producer)的生命周期…

    k8s進階之路:本地集群環境搭建

    概述 文章將帶領大家搭建一個 master 節點,兩個 node 節點的 k8s 集群,容器基于 docker,k8s 版本 v1.32。 一、系統安裝 安裝之前請大家使用虛擬機將 ubuntu24.04 系統安裝完畢,我是基于 mac m1 的系統進行安裝的,所…

    深度學習數據集劃分比例多少合適

    在機器學習和深度學習中,測試集的劃分比例需要根據數據量、任務類型和領域需求靈活調整。 1. 常規劃分比例 通用場景 訓練集 : 驗證集 : 測試集 60% : 20% : 20% 適用于大多數中等規模數據集(如數萬到數十萬樣本),平衡了訓練數…

    【TS學習】(15)分布式條件特性

    在 TypeScript 中,分布式條件類型(Distributive Conditional Types) 是一種特殊的行為,發生在條件類型作用于裸類型參數(Naked Type Parameter) 時。這種特性使得條件類型可以“分布”到聯合類型的每個成員…

    NSSCTF [HGAME 2023 week1]simple_shellcode

    3488.[HGAME 2023 week1]simple_shellcode 手寫read函數shellcode和orw [HGAME 2023 week1]simple_shellcode (1) motalymotaly-VMware-Virtual-Platform:~/桌面$ file vuln vuln: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpret…

    PostgreSQL的擴展(extensions)-常用的擴展-pg_dirtyread

    PostgreSQL的擴展(extensions)-常用的擴展-pg_dirtyread pg_dirtyread 是 PostgreSQL 的一個特殊擴展,它允許讀取已被刪除但尚未被 VACUUM 清理的數據行,是數據恢復的重要工具。 原理: pg_dirtyread 通過直接訪問表的…

    linux3 mkdir rmdir rm cp touch ls -d /*/

    Linux 系統的初始目錄結構遵循 FHS(Filesystem Hierarchy Standard,文件系統層次標準),定義了每個目錄的核心功能和存儲內容。以下是 Linux 系統初始安裝后的主要目錄及其作用: 1. 核心系統目錄 目錄用途典型內容示例…

    Bazel中的Symbol, Rule, Macro, Target, Provider, Aspect 等概念

    學習Bazel ,就要學習Bazel 的規則定義, 弄清各個概念是重要的一個步驟。 在 Bazel 規則定義中,Symbol、Rule 和 Macro 是常見的概念。除此之外,Bazel 還有 Target、Provider、Aspect Repository、Package、 Workspace、 Configura…

    深入探究 Hive 中的 MAP 類型:特點、創建與應用

    摘要 在大數據處理領域,Hive 作為一個基于 Hadoop 的數據倉庫基礎設施,提供了方便的數據存儲和分析功能。Hive 中的 MAP 類型是一種強大的數據類型,它允許用戶以鍵值對的形式存儲和操作數據。本文將深入探討 Hive 中 MAP 類型的特點,詳細介紹如何創建含有 MAP 類型字段的表…

    基于Java的區域化智慧養老系統(源碼+lw+部署文檔+講解),源碼可白嫖!

    摘 要 時代在飛速進步,每個行業都在努力發展現在先進技術,通過這些先進的技術來提高自己的水平和優勢,區域化智慧養老系統當然不能排除在外。區域化智慧養老系統是在實際應用和軟件工程的開發原理之上,運用Java語言、JSP技術以及…

    關于JVM和OS中的指令重排以及JIT優化

    關于JVM和OS中的指令重排以及JIT優化 前言: 這東西應該很重要才對,可是大多數博客都是以訛傳訛,全是錯誤,尤其是JVM會對字節碼進行重排都出來了,明明自己測一測就出來的東西,寫出來誤人子弟… 研究了兩天&…

    VS2022遠程調試Linux程序

    一、 1、VS2022安裝參考 VS Studio2022安裝教程(保姆級教程)_visual studio 2022-CSDN博客 注意:勾選的時候,要勾選下方的選項,才能調試Linux環境下運行的程序! 2、VS2022遠程調試Linux程序測試 原文參…

    WPF設計學習記錄滴滴滴4

    <Button x:Name"btn"Content"退出"Width" 100"Height"25"Click"btn_Click" IsDefault"True"/> <Button x:Name"btn" <!-- 控件標識&#xff1a;定義按鈕的實例名稱為"btn&…

    JVM 有哪些垃圾回收器

    垃圾收集算法 標記-復制算法(Copying): 將可用內存按容量劃分為兩個區域,每次只使用其中的一塊。當這一塊的內存用完了,就將還存活著的對象復制到另外一塊上面, 然后再把已使用過的內存空間一次清理掉。 標記-清除算法(Mark-Sweep): 算法分為“標記” 和“清除”兩個…

    React DndKit 實現類似slack 類別、頻道拖動調整位置功能

    一周調試終于實現了類 slack 類別、頻道拖動調整位置功能。 歷經四個版本迭代。 實現了類似slack 類別、頻道拖動調整功能 從vue->react &#xff1b;更喜歡React的生態及編程風格&#xff0c;新項目用React來重構了。 1.zustand全局狀態 2.DndKit 拖動 功能視頻&…

    新浪財經股票每天10點自動爬取

    老規矩還是先分好三步&#xff0c;獲取數據&#xff0c;解析數據&#xff0c;存儲數據 因為股票是實時的&#xff0c;所以要加個cookie值&#xff0c;最好分線程或者爬取數據時等待爬取&#xff0c;不然會封ip 廢話不多數&#xff0c;直接上代碼 import matplotlib import r…

    使用Android 原生LocationManager獲取經緯度

    一、常用方案 1、使用LocationManager GPS和網絡定位 缺點&#xff1a;個別設備,室內或者地下停車場獲取不到gps定位,故需要和網絡定位相結合使用 2、使用Google Play服務 這種方案需要Android手機中有安裝谷歌服務,然后導入谷歌的第三方庫&#xff1a; 例如&#xff1a;i…

    驗證碼實現

    驗證碼案例 學了Spring MVC &#xff0c;配置 相關章節&#xff0c; 現可以嘗試寫一個前后端交互的驗證碼 文章目錄 驗證碼案例前言一、驗證碼是什么&#xff1f;二、需求1.引入依賴2.導入前端頁面3.約定前后段交互接口 三、代碼解析Controllermodelapplication.xml 四丶結果五…

    查詢當前用戶的購物車和清空購物車

    業務需求&#xff1a; 在小程序用戶端購物車頁面能查到當前用戶的所有菜品或者套餐 代碼實現 controller層 GetMapping("/list")public Result<List<ShoppingCart>> list(){List<ShoppingCart> list shoppingCartService.shopShoppingCart();r…