自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (2)
  • 收藏
  • 关注

原创 嵌入式uboot和linux移植裁剪时如何匹配到对应CPU平台文件

首先给出定义:Uboot是针对某个具体某个开发板板子的,因此它的对应平台资源在/board文件夹下还有一个对应的配置头文件在include/config文件夹下,移植的时候主要是移植这两个文件(可能还需要修改某些其余的配置文件,但是都是为了对应这两个文件)一般是找与开发板相似的板子的默认配置(即uboot源码里面给出的deconfig)复制一份再修改。Linux内核则只需要移植一个平台文件(一般叫做mach-xxx.c,这个平台文件主要描述了开发板上面的硬件资源,即“设备”。针对的是非设备树版本,在设备树

2022-02-27 11:42:45 560

原创 嵌入式Linux总线-驱动-设备框架各个文件定义位置

以linux3.x为例,适用于平台总线驱动模式一般都是先注册设备再注册驱动,设备(device)在平台文件中注册,驱动(driver)在具体驱动文件中注册。设备注册:1)用platform_device结构体表示一个设备,重点字段是name和id 。2)构建一个platform_device数组,存放所有的设备。3)用platform_add_device函数将所有设备注册。**重点:**此时的这个设备只有名字和ID,代表某个设备,但是并不操作实际寄存器,似乎大部分设备都可以用这个platform_d

2022-02-08 12:50:35 515 2

原创 OLED和LCD使用差别

主要针对的是正点原子STM32实验中的屏幕驱动。OLED类似于点阵数据,每个像素点的值只有0和1的选择,数据量不大。分辨率较小:128*64,因此可以在单片机内存里面开辟一个二维数组,这个数组就相当于屏幕在内存里面的1:1映射。然后每次更新的时候,将这个数组写入到屏幕中,就可以实现。这个写入方法有很多,一般根据屏幕的接口选择。一般有8080、SPI。IIC和串口应该用的不多,因为这两个数据总线的传输效率较低(个人想法,未经验证)。实际上,嵌入式设备只要在内存允许的情况下很多这么做的,所以才有屏幕刷新,帧率

2021-12-05 10:15:44 3128

原创 正点原子STM32的OLED实验疑问

本文不针对正点原子的OLED实验做介绍,主要是针对它的一个坐标系选择问题上的疑问首先看结果:正点原子的OLED输出实验,这里明显看出正点原子以OLED的左上角为坐标原点(0,0),具体显示情况如下:这也验证了以左上角为原点的事实。我们都知道,显示函数是以画点函数为基础的,显示就是将画点函数进行集合。那么现在问题就出现在正点原子的画点函数,函数如下可以明显看出,这个画点函数是以左下角为坐标原点的。举个极端例子,如果让原点(0,0)点画1,那么由公式可以得到是OLED_GRAM[0][7]=1&l

2021-12-04 12:09:58 1634 8

原创 STM32和嵌入式LINUX的中断不同之处

1、STM32的中断很好理解,发生中断,就去中断向量表查询,然后对应执行。Linux的中断,在uboot中就已经设置了中断向量表。然后Linux内核启动的流程中会关闭中断,但是之后,如果想使用某个中断,那么直接申请就可以了。那么发生中断之后,就会根据中断号去查询。2、至于中断向量表,STM32的中断向量表列出了每一个中断。但是嵌入式Linux不是,七个中断,其余的中断都放在IRQ中断当中。这应该是A/R系列的专有中断模式。目的肯定是为了移植系统的时候方便。3、还有不同的是STM32如果想使用IAP+AP

2021-08-19 17:02:29 301

原创 sqlite3数据库基本操作

关系型数据库日志型数据库MySQL网站后台数据,开源且免费SQLserver嵌入式数据库:SQLlite系统命令:以.开头.schema 查看创建表的结构图.databases 查看打开的数据库.table 查看当前数据库的表SQL命令(增删改查)创建数据库表:create table stu(id Integer,name char,score Integer);插入一条语句 insert into stu values(1001,‘zhangshan’,80);插入部分数据:

2021-07-21 18:57:14 738

原创 Linux的IPC机制细节

1、无名管道(int pipe(int fd[2]))管道缓冲区一有空闲区域,写进程就会写。如果读进程不读出的话,操作会阻塞。如果没有内容的话,读进程也会被阻塞(读写用read和write)2、标准流管道(FILE * popen(const char cmd ,cconst char type))创建连接到另外一个进程的管道。也就是一个可以执行别的操作的*可执行文件***。(类似的还有system和exec函数族,提供了在一个程序里面执行别的文件的方法),读写必须使用标准流操作(gets和puts)3

2021-07-19 19:21:04 225

原创 SPI-flash操作笔记

在STM32上,对于外部储存芯片,直接配置MCU和他们的引脚就可以了。W25Qxx一次擦除为一个扇区(4K),一次写入为1页(256字节,这个字节是最多的,也可以只写1字节)。SPI的自动地址增长,应该是只在这一页里面会自动增长,所以一次性最多写入的字节数为一页(256字节),然后就要将地址指针跳转到下一页去。(这是分析正点原子的源码得到的结论)。针对STM32自己本身自带的flash。写操作的时候,不能从flash执行代码或数据。(因为STM32的代码是可以直接在flash上执行的,也就是说可以不用

2021-07-07 17:14:19 484 1

原创 ucos任务操作技巧

考虑到需要与上位机网络通讯的多任务系统。可以将网络通讯任务作为主任务。其余功能,简单的可以就在网络通讯任务里面直接处理。其他的可以明显区分不同功能的任务,就可以阻塞等待网络主任务发送的信号。当发出信号后,网络任务等待子任务的返回值。(这个返回值可以是邮箱,也可以是信号量),然后处理。这个等待子任务的过程,可以设置一个时间,时间过了,就取消了。 在利用串口接收数据的时候,可能无法知道结束符是什么,并不是每一个设备都会以回车(0x0d,0xoa)为结束符,这个时候,我们可以在串口中设置定时器,当接收到起..

2021-07-07 16:56:16 160

x64 debug 3.4.1.rar

opencv3.4.1+ opencv 3.4.1 contrib win10 64位系统 debug 版本

2020-03-28

cmake-3.15.5-win64-x64.rar

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。

2020-03-27

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除