原创 【1】-x86架構內核的配置和編譯

X86-內核 查看內核版本: 1.uname -r 2.cat   /proc/version 系統架構:1.用戶空間, 2.內核空間 將其分爲兩部分空間的原因:ARM系統中有多種使用模式,將 系統架構分爲兩個空間可以使操作系統得到充分的

原创 ROS實戰之節點發布/接收圖片

ROS-節點發布/接收圖片 ROS版本:indigo 攝像頭:羅技C270(可以先用cheese來進行測試攝像頭是否正常工作或者lsusb查看) Indigo下OpenCV包的使用* ROS從indigo開始就不再把opencv作爲系

原创 ROS實戰之ROS組網的搭建

搭建ROS組網 工具: 臺式機(Ubuntu):192.168.2.101 筆記本(虛擬機):192.168.2.106 步驟(此處以在筆記本中運行roscore爲準) 1. 將筆記本和臺式機連接在同一個網絡下,其中臺式機的虛擬

原创 ROS實戰之人臉檢測

ROS實戰之人臉檢測 ROS:indigo 攝像頭:羅技c270 本次實戰中人臉檢測代碼主要參考opencv源碼中的facedetect.cpp,根據自己的需要進行裁剪。 編程思想: 在上一篇博客ROS實戰之圖像發送和接收開始已經

原创 【14】Linux-字符設備控制技術

Linux-字符設備控制技術 設備控制-應用函數 在用戶空間,使用ioctl系統調用來控制設備: int ioctl(int fd, unsigned long cmd, ....) fd:要控制的設備文件描述符 cmd:發送給設備的控制

原创 【12】Linux-自己動手寫驅動

Linux-自己動手寫驅動 流程圖:   代碼模塊化: #include <linux/module.h> #include <linux/init.h> struct cdev mdev; dev_t devno;   loff_t m

原创 ROS實戰之catkin

在之前PC端Ubuntu上創建ROS程序包和編譯ROS程序一直都是用的rosbuild的方式來進行的,覺得這種方式比較簡單方便,而且買的《ROS機器人程序設計》也是用的這種方式。後來爲了以後能夠在不同平臺上進行編譯,師兄讓我使用catki

原创 【1】C++實現內核鏈表功能

內核鏈表: 特點:節點的指針域指向下一個節點/上一個節點的指針域,由此可以統一指針的類型,具有一般通用性,使用指針域跟數據入口地址【設爲0地址】的offset來尋找數據入口,從而輸出節點數據;內核鏈表一般爲雙向循環鏈表。 C++實現內核

原创 【11】Linux-字符驅動編程模型

Linux-字符驅動編程模型 內核驅動,實際上就是如何去通過內核模塊使得設備工作起來的過程。 驅動設備的基礎知識介紹 1.在任何一種驅動模型中,設備都會用內核中的一種結構來描述,字符設備在內核中使用struct cdev來描述 。 str

原创 ROS實戰之IDE的配置

** Ubuntu上配置jdk ** 1. 從oracle官網上下載需要的jdk版本 2. 經過解壓的操作後,打開~/.bashrc進行系統路徑的修改 export JAVA_HOME=xxxx/jdkxxx export C

原创 【9】Linux-設備驅動概述

Linux-設備驅動概述 驅動模型1   缺點:串口驅動程序無法複用,每個應用程序都需要單獨編寫串口的驅動程序 驅動模型2   缺點:驅動程序一旦改變,例如改變其形參,則所有使用該驅動的程序均需要進行修改   字符設備 一種按字節來訪問的

原创 【2】-內核驅動模塊的學習

Linux內核模塊開發 內核模塊的特點 1.不被編譯進內核文件bzImage中 2.可以根據需求,在內核運行期間動態地安裝或卸載 內核模塊設計 1.內核模塊程序的入口和出口是通過一個宏定義的module_init(entry func)、

原创 【7】Linux-內核鏈表

<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);">ARM-內核鏈

原创 【15】ARM-靜態映射簡述以及虛擬內存補充

關於虛擬地址的Tips 1.所有能被總線訪問到的外設均需要通過MMU來進行虛擬地址映射從而得到其物理地址 2.物理內存(SRAM)在虛擬地址中最多能表現爲4GB,但並不是說一定能夠完整地擁有這4GB,期間這4GB還得與GPIO等一起使用。

原创 【6】Linux-內存管理子系統

Linux-內存管理子系統 內存管理子系統職能: 1. 管理虛擬地址和物理地址的映射;2. 管理物理內存的分配 虛擬內存空間 空間分佈: 1. 用戶空間 如 0-3G地址空間 被用戶進程所使用與內核的直接映射區使用的是同個內存區域。