- 博客(20)
- 资源 (9)
- 收藏
- 关注
原创 win10下使用VS2019调用sqlite3环境搭建
文章目录下载sqlite3制作使用的动态库sqlie3.lib在VS 2019环境中添加下载sqlite3从sqlite3.org网站下载https://www.sqlite.org/index.html用到的sqlite3库及dll库。sqlite-amalgamation-3300100.zipsqlite-dll-win64-x64-3300100.zip制作使用的动态库sq...
2020-01-21 09:52:11 13457 10
原创 linux3.10使用PCIE-USB警告处理:needs XHCI_TRUST_TX_LENGTH quirk?
文章目录问题描述修改方式修改内容问题描述在龙芯2K1000上使用linux3.10内核时候,使用PCIE转USB上使用USB3.0,即XHCI协议时总是会报这样的警告:xhci_hcd 0000:14:00.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?xhci_hcd 0000:1...
2020-01-16 17:36:10 903
原创 C语言基础——字符串操作
文章目录字符串操作字符串操作函数strlen 函数strcat 函数strncat 函数strcmp 函数strncmp 函数strcpy 函数strncpy 函数memset 函数strstr 函数sprintf 函数sscanf 函数字符串操作在C程序中使用字符串,不可以使用操作符来操作字符串,应该使用一组标准函数,C标准库中有对于使用字符串操作的一组函数(需要包含头文件string.h...
2020-01-14 21:06:01 977
原创 Linux嵌入式开发——uboot添加logo显示功能
文章目录uboot添加logo显示概述u-boot中添加logo操作步骤获取bmp格式图片制作logo图片数组文件在u-boot中添加logo显示函数调用修改common目录下的Makefile编译u-boot烧写测试uboot添加logo显示概述uboot添加logo显示的原则:越早显示越好。logo本质就是一张图片,图片越小越好。LCD显示屏显示logo的硬件原理:内存控制...
2020-01-12 08:53:18 3568
原创 linux和Windows平台下获取时间戳方式
文章目录获取时间间隔方式:API说明Windows平台下使用 GetLocalTimelinux平台下使用 gettimeofday代码示例获取时间间隔方式:API说明Windows平台下使用 GetLocalTimeVOID GetLocalTime( LPSYSTEMTIME lpSystemTime //address of system times structure);...
2020-01-10 11:30:36 1661
原创 ARM编程——ARM架构及汇编
文章目录ARM体系结构与编程ARM7(ARMV4)和ARM9之后的指令操作流程ARM7(ARMV4)三级指令流水线三级流水线**PC**ARM7三级流水线特例——ldr指令ARM体系结构与编程当前ARM核的版本划分,ARMV4:这其中包含的小版本有:ARM720TARM920TARMV5:XscaleARM10ARMV6:ARM11ARMV7:ARM...
2020-01-08 21:51:59 5808
原创 龙芯2K驱动开发——使用中断触发读取GPIO电平值上传给读取进程
文章目录龙芯2K1000平台下编写GPIO驱动满足应用使用代码具体如下:龙芯2K1000平台下编写GPIO驱动满足应用使用需求在指定GPIO0上升沿触发中断后读取当前指定的六个GPIO电平值,经过短暂编码转换后,将枚举变量值返还给用户空间应用程序使用。在触发中断后需要经过10ms的电平稳定时间。经过电平稳定时间后读取指定的六个GPIO管脚电平值,转换成预先设定的枚举变量。读取结果成...
2020-01-08 17:43:51 2960 2
原创 Linux嵌入式基础——链接脚本
文章目录链接脚本链接脚本的特点链接脚本的语法链接脚本的使用链接脚本可执行程序基本包含的三大部分:text段内容data段内容bss段内容链接脚本的特点链接脚本文件以 .lds 后缀结尾,例如:shell.lds链接脚本文件用来指示可执行程序各个段包含的内容以及各个段的起始地址。链接脚本文件给链接器(arm…ld)使用,链接器根据链接脚本的规则进行连接。链接脚本的语法...
2020-01-07 22:16:17 412
原创 ARM裸板开发——简单编写实现“shell”功能
文章目录简单编写实现一个裸板环境下使用的“shell”功能程序,可以控制LED、beep等。main主程序设计主要函数:strcmp实现LED初始化及控制功能实现简单编写实现一个裸板环境下使用的“shell”功能程序,可以控制LED、beep等。main主程序设计#include "uart.h"#include "strcmp.h"#include "led.h"//保存从上位机...
2020-01-07 21:53:02 870 3
原创 Linux源码阅读工具:ctags
文章目录Linux源码阅读工具:ctagsUbuntu下安装ctags使用ctags创建源码阅读工程如果是在Windows下,使用sourceinsight即可。利用sourceinsight创建源码阅读工程sourceinsight解决中文乱码问题:Linux源码阅读工具:ctagsUbuntu下安装ctagssudo apt-get install ctags使用ctags创建源码...
2020-01-07 07:30:07 563
原创 ARM裸板开发——UART通信方式及使用
文章目录UART相关描述及概念计算机中常见的几种硬件通信方式UART串口的定义UART相关描述及概念计算机中常见的几种硬件通信方式计算机中CPU和外设进行硬件通信的方式有以下几种:GPIO通信方式,如:LED等、蜂鸣器等。UART串口通信方式,如:GPS、GPRS等等。I2C总线通信方式,如:重力传感器、加速度传感器、触摸屏等。SPI总线通信方式,如:norflash闪存、触摸屏...
2020-01-06 22:13:26 3242
原创 Linux常用功能——U盘自动挂载和卸载
文章目录配置系统使U盘能够自动实现挂载和卸载mdev.confusb_insert.shusb_remove.sh使用dd命令更新内核配置系统使U盘能够自动实现挂载和卸载/dev/sda1设备文件自动创建是由于热拔插事件产生,导致mdev程序被执行,由mdev来创建的设备文件其实可以通过设置使得mdev在去创建/dev/sda1设备文件的同事,完成U盘的自动挂载。mdev.conf在/e...
2020-01-06 07:37:21 680
原创 ARM嵌入式开发——基础概念
文章目录嵌入式Linux系统组成嵌入式Linux系统的启动流程uboot制作uboot特点uboot三大功能硬件初始化功能引导加载内核为内核传递启动参数uboot源码操作嵌入式Linux系统组成嵌入式Linux系统软件由三部分组成:BootLoader(uboot)裸板软件,初始化硬件+从闪存加载内核到内存并且启动内核+给内核传递启动参数,告诉内核根文件系统rootfs在什么地方。(上电...
2020-01-05 21:21:01 583
原创 Linux驱动开发——内核I2C驱动
文章目录Linux内核i2c驱动编程i2c总线特性I2C总线特点可以概括如下:字节格式应答响应时钟同步Linux内核i2c驱动i2c总线驱动i2c设备驱动Linux内核i2c驱动框架编写i2c设备驱动程序实现原理i2c_clienti2c_driverSMBUS接口函数的使用步骤示例(MMA8653三轴加速度传感器使用)具体代码如下:Linux内核i2c驱动编程i2c总线特性I2C总线是由...
2020-01-05 20:19:23 3222 2
原创 Linux驱动开发——物理地址映射(②)
文章目录用户空间下的物理地址映射mmap系统调用函数mmap系统调用的实现过程对应的底层驱动的mmap接口用户空间下的物理地址映射前一篇讲述了利用imremap函数完成Linux内核空间下的物理地址映射到内核虚拟地址空间上。那么如何能够将外设的物理地址映射到用户空间下的虚拟地址呢,如果一旦完成将外设的物理地址映射到用户空间下的虚拟地址,那么用户就可以直接通过这种映射访问外设的物理地址。利...
2020-01-03 23:32:25 1041
原创 Linux驱动开发——物理地址映射(①)
文章目录Linux驱动开发之物理地址映射ioremap函数使用方式方式一方式二不使用GPIO库函数方式来修改之前操作LED灯代码示例总结Linux驱动开发之物理地址映射如果不采用GPIO库函数,那么我们如何能在底层驱动中访问外设对应的硬件寄存器呢?是像类似单片机编程一样直接对硬件寄存器访问么?在Linux系统中,不管是在用户空间还是内核空间一律不允许直接访问硬件外设的基地址(包括寄存器...
2020-01-02 21:53:15 3138 5
原创 Linux驱动开发——去除按键抖动问题
文章目录Linux内核按键去抖动问题按键抖动按键驱动的方法Linux内核去除抖动的原理代码示例总结Linux内核按键去抖动问题按键抖动按键抖动表现出来的现象其实就是明明只是按下去一次按键,但是却总是触发多次中断,本质其实是因为按键属于机械结构,所以不可避免会在按下和松开时产生意外的中断触发。按键驱动的方法按键去抖动的方法有两种:硬件去抖动:硬件工程师只需要添加一个滤波电路等方式即...
2020-01-02 20:49:43 2257
原创 Linux驱动开发——内核延时操作和内核等待队列
文章目录Linux内核延时概念应用场景Linux内核相关延时函数Linux内核等待队列机制概述等待队列的功能驱动编程实施步骤示例代码(一)示例代码(二)总结Linux内核延时概念延时又称为等待,延时分为两类:忙延时和休眠延时。忙延时: 当任务进行忙延时时,任务将会导致所占用的CPU资源进行白白消耗,类似原地空转。休眠延时: 进程进入休眠状态,进程会释放所占用的CPU资源给其他进程使用。...
2020-01-01 22:21:05 1824
原创 Linux驱动开发——并发和竞态(原子操作方式的使用⑤)
文章目录解决竞态引起异常方法之原子操作原子操作特点位原子操作使用方式比较:整形原子操作使用方式比较:示例代码解决竞态引起异常方法之原子操作原子操作特点原子操作能够解决所有的竞态问题。Linux内核原子操作分为两类:位原子操作和整形原子操作 。位原子操作位原子操作 = 位操作的过程具有原子性 = 对共享资源进行位操作的过程中不允许发生CPU资源的切换。应用场景:如果在代码中发现需要对...
2020-01-01 08:49:43 585
原创 Linux驱动开发——并发和竞态(信号量方式的使用④)
文章目录解决竞态引起异常的方法之信号量解决竞态引起异常的方法之信号量其实信号量不同于其他方式能够解决临界区内有休眠操作的问题,最主要的原因是信号量的获取和释放只会影响到需要访问临界区的进程任务,并且在获取访问临界区条件不成立时会进入休眠并释放CPU资源(也就是不会占用消耗CPU资源)。而屏蔽中断、自旋锁、衍生自旋锁则不一样。最主要的是几种方式在访问临界区条件不成立的时候的影响不一样(当前有任务在访问临界区,所以其他任务不能访问)
2020-01-01 08:14:08 469
RK3568 制作kernel层logo分区镜像工具,用于制作kernel层logo动画
2022-11-22
readelf.zip
2021-05-13
SAP服务器安装最强教程.zip
2021-05-12
python生成数据可视化.zip
2020-08-02
UDP聊天室.zip
2020-07-16
基于ARM和OpenCV的增强现实平台研究.pdf
2019-11-03
Python编码报错问题【Ubuntu】
2023-02-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人