原创 組網基礎之深入解析二層組播

所謂二層組播,即數據幀的轉發是面向二層的,根據組播MAC地址來決定數據幀的轉發方向,而三層組播,即所謂的IP組播,則根據三層組播地址,即組播IP地址來進行數據幀的轉發。   二層組播相關協議包括IGMP 和GMRP協議。讓我們從分析組播M

原创 128*64點陣圖形液晶顯示屏程序設計教程

使用PROTEUS仿真軟件中的液晶顯示屏(型號AMPIRE12864)探索點陣液晶的編程方式;該型號液晶屏內部無字庫,只能自建字模進行字符顯示(使用方法與圖形顯示方式一致);字模可通過“字模提取”軟件提取,省去手工建模 的麻煩。 整體

原创 vxworks與linux區別

自己目前開發的嵌入式開發所用的操作系統是VxWorks,以前讀大學的時候用的最多的是linux操作系統,但是,對於這兩種操作系統之間到底有什麼區別,還真沒有真正去細心的總結過,被別人問起時,難免有些尷尬的感覺,畢竟自己是學嵌入式開發的,竟

原创 ARM 關鍵幾個寄存器

1. PC(程序計數器)  = windows 中 EIP 解析: 處理器要執行的程序(指令序列)都是以二進制代碼序列方式預存儲在計算機的存儲器中,處理器將這些代碼逐條 地取到處理器中再譯碼、執行,以完成整個程序的執行。爲了保證程序能夠

原创 c語言驗證哥德巴赫猜想

什麼是哥德巴赫猜想,哥德巴赫猜想就是,任一大於2的偶數都可以寫成兩個素數之和,那麼下面我們就用c語言去驗證這種猜想   #include<stdio.h> #include<math.h> /*判斷一個數是不是素數,如果是則返回tru

原创 嵌入式開發之DRAM/SARM/NOR FLASH/NAND FLASH

雖然自己是做嵌入式開發的,但是自己每次都被這幾個名字搞的有點暈乎,或許你也可以問下你身邊做嵌入式開發的,開發用的內存是多大?用的是哪種存儲介質?flash用的是多大?用的是NOR FLASH還是NAND FLASH?這兩個有什麼不一樣?估

原创 SNMP協議詳解<三>

在上篇文章中,說到了SNMPv3主要在安全性方面進行了增強,採用USM(基於用戶的安全模型)和VACM(基於視圖的訪問控制模型)技術。下面我們就主要講解SNMPv3的報文格式以及基於USM的認證和加密過程! 1、SNMPv3的消息格式如下

原创 Linux內存管理之進程創建的寫時拷貝技術

Unix的進程創建很特別。許多其他的操作系統都提供了產生進程的機制,首先在新的地址空間創建進程,讀入可執行的文件,最後開始執行。Unix採用了與衆不同的實現方式,它把上述步驟分解到兩個單獨的函數中去執行:fork()和exec()。(這裏

原创 從二層交換機來說爲什麼三層交換機比路由器轉發速率快

我們都知道二層交換機工作的數據鏈路層,依靠mac地址來進行數據通信的,而路由器是工作在網絡層,依靠ip地址來通信的,爲了說明三層交換機比路由器的轉發速率快,那我們還是先從二層交換機入手。 首先我們來比較下二層交換機與路由器的報文轉發速率(

原创 《TCP-IP詳解 卷2:實現》學習筆記—接口層分析

所謂接口,就是指在一個特定網絡上硬件與設備驅動器之間的接口。BSD設計將網絡協議和連接到一個系統的網絡設備的驅動器間提供一個與硬件無關的編程接口。 1、ifnet結構 結構ifnet中包含所有接口的通用信息。在系統初始化期間,分別爲每個網

原创 如何判斷CPU是大端還是小端模式

在ARM體系中,每個字單元包含4個字節單元或者兩個半字單元。在字單元中,4個字節哪一個是高位字節,哪一個是低位字節則有兩種不同的格式:big-endian和little-endian格式。在小端模式中,低位字節放在低地址,高位字節放在高地

原创 SNMP協議詳解<二>

上一篇文章講解了SNMP的基本架構,本篇文章將重點分析SNMP報文,並對不同版本(SNMPv1、v2c、v3)進行區別! 四、SNMP協議數據單元 在SNMP管理中,管理站(NMS)和代理(Agent)之間交換的管理信息構成了SNMP報文

原创 字符串匹配算法的實現

爲了保持自己的編程能力的不斷提升,平時還是要多注意培養自己思考問題以及自己的動手能力,每次抽空記錄下自己平常沒事寫的程序,留待以後碰到好的方法再進行修改,也算是不斷的提升自己   今天要實現的算法就是字符串匹配算法,我這種實現方法是直接的

原创 整數數組中,每個元素均出現兩次,除了一個元素例外,如何找出這個元素?能否設計一個線性時間的算法,且不需要額外的存儲空間?

整數數組中,每個元素均出現兩次,除了一個元素例外,如何找出這個元素?能否設計一個線性時間的算法,且不需要額外的存儲空間? int singleNumber(int arr[], int n) { printf("n = %d\n",n

原创 Linux內存管理之vmalloc和kmalloc

瞭解linux操作系統的,我們都知道內存管理對於linux操作系統的重要性,當然其他操作系統內存管理也佔有舉足輕重的角色。 在內核裏分配內存可不像在其他地方分配內存那麼容易。造成這種局面的因素有很多,從根本上講,是因爲內核本身不能像用戶空