自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

原创 Buildroot----使用buildroot快速构建基于itop4412的uboot、kernel、rootfs

前言开始上来就一个make menuconfig一、配置目标平台:二、配置工具链三、配置Linux内核四、配置Bootloader大功告成絮叨工程地址前言最近在学习linux开发板的系统构建。Linux下的三大组件可以简单分为:Bootloader(引导程序)、LinuxKernel(Linux内核服务)、Rootfs(根文件系统)。以往我的认知里,这些工具构建的常规流程,都是独立编译构建的。后来接触到有更便捷的编译构建工具----Buildroot、Yocto等。今天写博客记录一下Buildroo.

2020-05-19 12:36:37 2073 4

原创 CMake----编译构建开源工具软件,zlib、quazip

CMake----编译构建开源工具软件,zlib、quazip

2022-06-27 16:25:16 1665 1

原创 Golang----语法(二)

结构体结构体构造函数方法和接收者结构体结构体构造函数结构体构造函数返回函数指针,节省内存拷贝开销type person struct { name string age int}func newPerson(name string, age int) *person { return &person{ name: name, age: age, }}func main() { Jc := newPerson("Jc", 18) fmt.Printf("%.

2021-02-26 21:54:57 408

原创 Golang----语法

变量声明变量声明//全局变量var nameTest1 stringvar nameTest2 intvar nameTest3 bool//批量声明,常用var ( name2 string age int ok bool)func test(){ //局部变量,局部变量声明必须使用! var nameTest4="hello"//类型推导 nameTest5 := "world"//简短声明,常用}...

2021-02-21 20:21:16 1006

原创 Golang----第一个程序

1、安装go2、搭建vscode编辑器环境3、编写第一个go程序补全go工具集墙参见Go 1.13 及以上(推荐)4、构建程序错误1、安装gogolang官网2、搭建vscode编辑器环境下载vscode,安装go插件.3、编写第一个go程序package mainimport "fmt"func main() { fmt.Println("hello Jc!")}补全go工具集vscode会提示要补全golang的工具集,比如自动补全代码工具等…但是vscode自动安装时.

2021-02-09 15:14:44 405

原创 C----知识补全

--------------------------------------------------------------------------------------------------------------------------------------联合体复杂声明预处理联合体联合的另一种用法是, 在结构中储存与其成员有从属关系的信息。 例如, 假设用一个结构表示一辆汽车。 如果汽车属于驾驶者, 就要用一个结构成员来描述这个所有者。 如果汽车被租赁, 那么需要一个成员来描述其租赁公司。

2021-02-03 21:59:36 191

原创 ITOP4412----尝试使用debootstrap构建文件系统。

部分转载:debootstrap 制作arm64位根文件系统正文debootstrap是debian/ubuntu下的一个工具,用来构建一套基本的系统(根文件系统)。为什么要使用它呢?因为它打包出来的文件系统,含有软件包管理工具,apt\dpkg。使用制作好的文件系统,安装软件时可以直接使用apt-get install命令,也可以通过dpkg安装deb软件包。下面记录一下使用ubuntu宿主机,构建debian文件系统的过程。一、配置环境:安装必要的工具:1、debootstrap,根

2020-12-27 19:48:54 903

原创 UBOOT----基于itop4412开发板,从0开始,慢慢摸索UBOOT的启动流程和系统组织结构(一)

UBOOT是一个用于引导我们通俗概念中的操作系统的程序。本篇文章,仅为日后回顾知识点做下笔记。UBOOT的第一个启动文件为start.S,此文件位于uboot源码的顶层目录的芯片架构下,如ARM:/arch Architecture specific files /arm Files generic to ARM architecture这个文件里,一般是指定平台的汇编代码编写而成。1、Start.Sarmv7的子过程调用流程,同一缩进表示在同一个子过程中:reset: save

2020-11-21 20:54:32 728 1

原创 QT----在ARM开发板上,使用请求HTTPS链接,踩过深坑,链接openssl、buildroot、qt编译

最近在忙活学习QT,发现QT真是对开发者太友好了,简直就是万能积木。回归正题,交代下背景,自己做了个小项目,需要使用QT的Network Class来对HTTPS网站进行访问。这里就踩了一堆大坑,仅以此贴做记录,同时让后来者少走弯路,因为在这过程中,我发现相关的资料少得可怜。初步发现问题在程序的开发过程中,都是使用windows开发,后转入ubuntu,这里跨平台很顺利,可能是项目涉及平台相关的一些东西不多。在ubuntu搭建QT arm目标平台的编译环境先在这里留一个坑,后面填。在ubuntu的

2020-09-27 23:05:34 2685 4

原创 Python----基于selenium的浏览器部署操作

下述操作基于Windows系统。1、安装selenium模块。打开CMD,输入PIP指令安装模块,指定清华源下载:pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple2、下载浏览器的驱动:支持的浏览器驱动 ,可以查看是否支持。常见的驱动Chrome、IE、火狐。3、下载完后,将名为xxdriver.exe的文件,放在Python的安装目录中,为了在环境变量中可以找到。4、测试第一个selenium模块的实例:fr

2020-08-30 10:44:29 178

原创 ARM----ARM体系结构(二)

ARM流水线1、取地址2、译码3、执行4、访问内存5、回写五个步骤并行开始流水线一取地址时流水线二则在译码,以此类推在发生异常时,会进入到特定的模式,需要在该模式中对异常进行处理。不同模式下访问的寄存器不完全一致,如图。SPSR用来保存切换模式后,原模式的状态,以便于异常处理后的返回。如从UNDEF模式,返回到SVC模式。msr r0,spsr @将切换到该模式前的状态从spsr读出,保存到spsr的内容,是由芯片自动完成的。mrs cpsr,r0 @将spsr的内容写.

2020-08-12 22:58:27 250

原创 ARM----ARM体系结构

寄存器通用寄存器别称作用R0-R3a1-a3通用寄存器,随意更改R4-R9v1-v7R10SLR11FPR12IPR13SPR14LR存放使用PC寄存器跳转前,调用指令的地址专用寄存器别称作用R15PC指令寄存器,给它赋值就会去对应地址取指令运行CPSR状态寄存器指示ARM内核的状态,有控制状态,指示中断等有无使能,还有编码状态,指示上一个指令执行后是处于溢出、计算结果负数等。SPSR

2020-08-09 23:09:24 364

原创 ITOP4412----基于4.19.99Linux内核的4.3寸显示屏驱动(三)

目录设备树源码设备树源码对应寄存器系统控制寄存器----LCD内容:供电管理控制寄存器----LCD内容:时钟管理寄存器----LCD内容:驱动源码本章开始,主要检查第一章中编写的驱动代码,并记录检查的流程,讲从4412寄存器的中开始,不放过一点一滴的细节。设备树源码 /* LCD设备 */ lcd_4_3@11C00000 { compatible = "itop4412, lcd_4_3"; reg = <0x11C00000 0x20c0 0x10010210 0x08 0x10

2020-08-02 16:34:42 1310 3

原创 ITOP4412----基于4.19.99Linux内核的4.3寸显示屏驱动(二)

ITOP4412----基于4.19.99Linux内核的4.3寸显示屏驱动(一)目录FrameBuffer简介三个结构体内容:**fb_var_screeninfo****fb_fix_screeninfo****struct fb_ops**FrameBuffer的注册FrameBuffer框架的驱动编写流程大致是这样接上文,在ITOP4412开发板基于Linux4.19内核版本上,移植了4.3寸屏WXCAT43-TG6屏幕驱动,但是驱动的显示效果不正常。异常表现为上电后打印的log信息、QT写的

2020-08-02 12:30:55 965

原创 ITOP4412----在Ubuntu上搭建tftp及nfs服务,使用tftpboot启动Linux内核,并使用nfs网络文件系统作为根文件系统。

在Ubuntu上搭建tftp及nfs服务器,并使用tftpboot启动开发板挂载根文件系统。1、测试UBOOT驱动及网络环境正常2、配置tftp服务器3、配置开发板uboot命令4、准备搭建NFS服务器环境前几天闲来无事,调试驱动,因为开发学习使用的是SD卡启动,内核镜像和设备树文件都放在了SD中,每次调试都要插拔SD卡,略为麻烦。忽然想到了之前移植大神的UBOOT是支持网络的,遂萌发tftp从ubuntu虚拟机中下载内核镜像和设备树,使用网络启动开发板的念头,如果能使用网络挂载根文件系统那更好了!下

2020-07-23 22:28:51 926 2

原创 ITOP4412----基于4.19.99Linux内核,添加内核提供的tsc2007触摸驱动程序

前面一段时间移植好了4.3寸电阻屏,但是显示效果很差,也没有时间去和思路去调整,最近一切安定下来,终于能抽时间继续查漏补缺了。秉着先易后难的原则,就先把触摸屏的驱动给适配上吧,因为Linux官方提供的内核源码中,已经提供了tsc2007触摸芯片的驱动(偶然瞥见的,巧不巧),而恰好讯为的4.3寸屏幕使用的就是这款芯片。按照惯例,先在内核源码中找到驱动文件。在内核目录下,找到:drivers/input/touchscreen/tsc2007_core.c文件,内核驱动的一贯套路,先看probe函数,ts

2020-06-30 21:17:04 878

原创 ITOP4412----使用buildroot添加qt库后,QTcreator的环境配置

buildroot编译完文件系统后,使用make sdk命令,会将编译工具打包到目录下。想要编译qt程序在开发板上运行,需要相同的编译器编译程序。所以,在QTcreator中,将编译器配置为如图路径。此外,qmake也会被打包到host目录下,选中即可。仅做记录,未完待续。。。。...

2020-06-29 19:47:05 939

原创 ITOP4412----基于4.19.99Linux内核的4.3寸显示屏驱动(一)

参考:排名不分先后顺序1、设备树学习之(十二)LCD驱动2、exynos4412 的FIMD 介绍3、Exynos4412——LCD驱动4、【TINY4412】LINUX移植笔记:(27)设备树LCD驱动本人使用的开发板为itop4412开发板,因为官方提供的Linux4.14的内核并没有提供4.3寸LCD屏的设备树和驱动,但是直接烧录镜像发现屏幕是可以被点亮的,萌发移植lcd驱动的念头。对于移植来说,无论哪家的开发板,同一个soc,片上外设情况都是相同的,可以借鉴。开始移植移植的时候,搜索了

2020-05-25 15:52:16 1974 7

原创 ITOP4412----Uboot2020移植记录

ITOP4412----Uboot移植记录1、 在board/samsung/目录下添加itop4412目录,准备添加板级文件。mkitop4412spl.citop4412.cKconfigMaintainedMakefile2、在arch/arm/include/asm/mach-types.h中添加4412机器码3、添加board.c实现s_init()拉高电源芯片hold引脚和点亮led灯...

2020-04-28 19:09:44 13997 11

原创 C++类模板类成员的类外定义方法

举个栗子: template<typename T>//代表这是个类模板 class BinaryTree { public: BinaryTree(); ~BinaryTree(); T PreBTreeSearch(); T InBTreeSearch(T) { //类模板内成员定义 } private: }; /*类模板的构造函...

2019-09-05 16:25:35 3096

转载 C++中的static关键字的总结

个人的一些领悟:static关键字定义的成员需要占用静态储存区空间的,在程序开始进入栈前,就应该完成初始化,把值确定下来。而类的声明是不占用静态储存区的,所以static的成员不能在类声明中定义。转: 静态成员的声明要加个关键static。静态成员可以通过双冒号来使用即<类名>::<静态成员名>,非静态成员则不能。 static成员变量属于类(被存放在数据段中),不...

2019-08-23 20:48:03 209

原创 指针拾遗补充之二重指针

最近在学习数据结构与算法,在编写二叉树遍历的时候,回到课程里函数的参数使用了一个二重指针。遂引发了之后的思考。首先为什么要用到二重指针呢?其实这是一个一直以来我都没有重视的问题,也是C语言最基础的思想:函数的参数传递方式有两种:值传递与地址传递。简单来说,如果是普通的值传递,函数只需要根据你传入的变量的值,做出相应操作就好了。但是如果你想通过函数来修改传入的变量的值,那么只能通过地址传递来...

2019-08-19 16:19:34 266

原创 Python学习之面向对象编程思想———拾遗

最近在学习小甲鱼的Python课程,学到了对魔法方法覆写(重写?重载?)这一块,先不bb,贴代码class Cel: def __init__(self,value = 20.0): self.value = float(value) def __get__(self,instance,owner): return self.value def __set__(self,ins...

2019-08-05 21:27:05 249

原创 指针的真正领悟? 知识补全

#include <stdio.h>void Test(int *const a);int main(){ int * i;//定义一个整型指针数据 int b = 0;//定义一个整型数据,初始化为0。 i = &b; //这里给指针变量i赋值,因为是指针变量,所以他的储存类型是一个地址。 //就像int整型一样,int型数据存放的是一个整型数据。这里用...

2019-07-17 18:15:58 124

原创 FreeRTOS----debug之任务信息的查询,函数使用的小坑和“任务“这一概念

在做FreeRTOS中任务查询的例程的时候,使用了这条函数: **uxTaskGetSystemState**,该函数对其填入参数进行填充:1、pxTaskStatusArray 任务状态列表,里面储存了,任务名称,优先级,等等信息2、uxArraySize 列表的大小,根据任务数量动态分配大小,这里用了uxTaskGetNumberOfTasks这条函数获取任务数量,使用pvPortM...

2019-07-16 20:10:39 467

原创 FreeRTOS----debug之任务的挂起和恢复实验,任务无法切换

**任务的挂起和恢复----debug:**背景 :有两个Task, Task1为LED闪烁任务,Task2为挂起恢复LED任务调试程序遇到的问题:LED灯闪烁任务不能正常执行,一直常亮原因:LED闪烁任务优先级为2,低于任务恢复挂起优先级3,所以当LED任务调用vTaskDelay函数后,程序就进入阻塞态,将cpu使用权交出叫给优先级比他更高的Task2,而Task2中没有调用vT...

2019-07-16 17:03:47 1138

原创 查漏补缺0:学习到DMA和Esp8266的使用的一些小问题

最近在做关于Esp8266wifi的小玩意,遇到了许多问题,仅做记录。使用Esp8266上手比较简单,一般购买现成的模块都烧写好了配套的AT指令集和SDK, SDK没有用到,暂时放一边。先回忆回忆常用的AT指令:测试指令:AT 返回值:ok如果连接正确,返回OK,否则ERROR,其他指令相同AT+CWMODE=<mode> 模式设置 AP STATION AP+STA...

2019-07-12 21:32:22 1389

原创 蓝桥杯CT107D初学之:调通数码管

调通数码管:大致思路:开启总硬件控制器 -> 开启子硬件 -> 对子硬件操作实现功能正文:通过74HC138 控制 74HC02,74HC02 控制着LED、蜂鸣器、数码管(74HC573),控制选通可以选择功能。以实现数码管com选择为例:WR通过跳线可以接地,低电平0.控制数码管的 74HC573 功能表:即控制Y6、WR使Y6C输出高电平(H) = 1 ,使D(...

2019-04-12 21:00:48 665

quazip-1.3、zlib-1.2.12源码及基于Mingw32(7.3.0)编译工具链构建的库文件

quazip-1.3、zlib-1.2.12源码及基于Mingw32(7.3.0)编译工具链构建的库文件,内含debug及release版本

2022-06-27

空空如也

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

TA关注的人

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