自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (8)
  • 收藏
  • 关注

原创 uboot研读笔记 | 08 - 移植uboot 2012.04到JZ2440(设置mtd分区表)

1. mtd分区规划及其作用uboot支持各种设备之后,接下来的工作就是烧写内核、烧写文件系统,所以需要对整块Nand Flash的空间作以规划,大致分为以下四个空间即可:bootloader空间内核参数空间内核空间文件系统空间但是目前我们仅知道uboot.bin被裁剪到了217KB,而不知道其它三个空间的信息,而且是第一次移植,对内核参数占用空间、内核空间的大小没有概念,所以我们...

2020-02-29 11:58:31 2711

原创 uboot研读笔记 | 07 - 移植uboot 2012.04到JZ2440(裁剪uboot大小)

1. 裁剪方法目前一步一步移植完成的uboot.bin文件有327KB,太大了,可以进行一定的裁剪,将用不到的代码不加入编译,减小uboot.bin文件的大小。裁剪方法非常简单:修改单板配置文件include/configs/smdk2440.h,去除不必要的宏定义。2. 裁剪过程去除USB支持去除RTC支持去除BOOTP支持去除DHCP、DATE、USB命令支持去除文件系...

2020-02-28 21:42:15 2306

原创 uboot研读笔记 | 06 - 移植uboot 2012.04到JZ2440(支持DM9000C网卡)

1. JZ2440开发板上的网卡JZ2440开发板板载DM9000C网卡,原理图如图:2. 添加uboot中已有的驱动文件到工程中2.1. 添加宏定义uboot自带的驱动文件夹中已经包含有DM9000的文件:drivers/net/dm9000x.cdrivers/net/dm9000x.h接下来查看此目录(net目录)下的makefile文件,将DM9000的这两个文件加入工...

2020-02-28 09:21:08 1373

原创 uboot研读笔记 | 05 - 移植uboot 2012.04到JZ2440(支持Nand Flash读写)

在支持Nand Flash操作之前,首先要对Nand Flash的读写方法有一定的了解,参考文章:S3C2440-裸机篇-10 | 使用S3C2440操作Nand Flash1. 去除nand flash屏蔽在之前初步移植uboot时,发现开启nand flash之后编译不通过,所以屏蔽了nand flash的使用,在单板配置文件include/configs/smdk2440.h中开启...

2020-02-27 19:01:37 1591

原创 S3C2440-裸机篇-10 | 使用S3C2440操作Nand Flash

1. Nor Flash与Nand FlashNorNand接口引脚多,类似于RAM引脚较少容量小(1-32MB)大(128-512MB)读操作简单,和RAM相同简单,和RAM相同写操作发出特定命令才能写入发出特定命令才能写入价格贵便宜比较无坏块有坏块XIP可以不可以应用场合存储关键性代码(比如uboo...

2020-02-27 10:37:49 1303 2

原创 VScode和SourceInsight,到底哪个看源码爽?

在做嵌入式Linux开发的时候,经常会阅读大型工程源码,比如uboot源代码,Linux Kernel源码等,所以,选择一个合适的工具来阅读源代码,变为了一个经久不衰的话题。阅读源码的时候,其实无非也就两个重要的功能:① 定义或者声明快速跳转② 快速搜索指定内容另外还有一些功能是和开发体验相关的,比如:① 工具的主题(亮色和暗色)② 工具是否方便修改编辑内容③ 工具是否还提供其...

2020-02-26 19:31:08 58521 47

原创 uboot研读笔记 | 04 - 移植uboot 2012.04到JZ2440(支持Nor Flash读写)

向jcedc信息库中添加JZ2440开发板板载Nor Flash的支持,使uboot支持该款Flash

2020-02-26 11:42:14 2571

原创 uboot研读笔记 | 03 - 初步移植uboot 2012.04到JZ2440(修改时钟,配置串口)

1.新建单板① 新建单板目录,复制已有相似的目录即可(在board/厂家型号之下)② 新建单板配置文件,复制相似即可(在include/configs/目录下)③添加单板配置文件修改根目录下boards.cfg文件,在其中按照规定的格式添加单板配置文件,格式如下:Target ARCH CPU Board name Vendor SoC Options//目标 CP...

2020-02-25 14:00:31 2049 1

原创 uboot研读笔记 | 02 - 详细探索uboot启动过程(2012.04版本,基于S3C2410处理器)

1. 启动流程分析方法uboot的文件太多了,要从文件着手学习是非常困难的,最好的办法是:选择一款已经默认支持的处理器,然后去研究针对该款处理器的启动过程,以及使用到了哪些问文件,重点掌握需要自己修改哪些文件即可。这里我选择和开发板S3C2440近似的一款已有处理器:S3C2410,然后研读针对该款处理器的源代码。2. start.S文件(stage1阶段-ASM)在编译产生的链接文件u...

2020-02-24 20:27:02 2819

原创 uboot研读笔记 | 01 - 下载uboot源码并使用VSCode远程查看源码、编译uboot(2012.04.01版本)

1. 硬件准备俗话说,纸上得来终觉浅,绝知此事要躬行。要想真正的搞懂uboot,不能只靠查看源码,要准备一块实际可以跑Linux的板子,并且一定要有别人移植好的uboot作为参考。这里我使用的是JZ2440开发板,处理器是三星的S3C2440,CPU是ARM920T,如图。因为这款处理器移植uboot的资料太太太丰富了,所以在学习阶段,我选择这款处理器。2. 下载uboot源码uboo...

2020-02-21 21:03:42 4328

原创 uboot研读笔记 | 00 - 嵌入式Linux系统中Bootloader的作用和基本运行原理

1. 嵌入式Linux系统开发架构一个嵌入式Linux的系统的架构如下图:软件程序开发中,从下往上每一次的作用依次为:Bootloader:将硬件初始化,并将内核引导起来;Linux Kernel:定制、裁剪之后的Linux内核;根文件系统:提供文件系统,更好的使用存储空间;设备驱动:完成设备操作,并向上层软件提供设备的调用接口;应用程序:Linux系统编程、网络编程、shell...

2020-02-21 21:03:31 3133

原创 RT-Thread Studio 项目实战教程 | 快速打造一个桌面mini网络时钟

1. RT-Thread StudioRT-Thread Studio 是一站式的 RT-Thread 开发工具,通过简单易用的图形化配置系统以及丰富的软件包和组件资源,让物联网开发变得简单和高效。RT-Thread主要包括工程创建和管理,代码编辑,SDK管理,RT-Thread配置,构建配置,调试配置,程序下载和调试等功能,结合图形化配置系统以及软件包和组件资源,减少重复工作,提高开发效率...

2020-02-21 15:35:39 14053 7

原创 使用RT-Thread Studio DIY 迷你桌面时钟(五)| 使用内置 Git 插件管理项目

1. 项目进度桌面Mini时钟项目用来演示如何使用RT-Thread Stduio开发项目,整个项目的架构如下:在前四篇博文中简单的介绍了RT-Thread Studio一站式工具,基于STM32L431RCT6这个芯片创建工程,并修改时钟为使用外部时钟,以及添加SHT3x软件包获取温湿度传感器数据,添加了ESP8266设备连接网络,使用NTP服务器进行网络对时,最后添加u8g2软件包,驱动...

2020-02-21 15:01:36 5140

原创 使用RT-Thread Studio DIY 迷你桌面时钟(四)| OLED显示时钟和温湿度(cpp组件 + u8g2软件包)

1. 项目进度桌面Mini时钟项目用来演示如何使用RT-Thread Stduio开发项目,整个项目的架构如下:在前三篇博文中简单的介绍了RT-Thread Studio一站式工具,基于STM32L431RCT6这个芯片创建工程,并修改时钟为使用外部时钟,以及添加SHT3x软件包获取温湿度传感器数据,最后添加了ESP8266设备连接网络,使用NTP服务器进行网络对时。使用RT-Thre...

2020-02-21 14:26:55 9312 5

原创 使用RT-Thread Studio DIY 迷你桌面时钟(三)| 获取NTP时间(at_device软件包 + netutils软件包)

1. 项目进度桌面Mini时钟项目用来演示如何使用RT-Thread Stduio开发项目,整个项目的架构如下:在上一篇博文中简单的介绍了RT-Thread Studio一站式工具,基于STM32L431RCT6这个芯片创建工程,并修改时钟为使用外部时钟。使用RT-Thread Studio DIY 迷你桌面时钟(一)| 基于STM32芯片创建工程使用RT-Thread Studio ...

2020-02-20 21:56:39 9915 6

原创 使用RT-Thread Studio DIY 迷你桌面时钟(二)| 获取温湿度传感器数据(I2C设备驱动+SHT3x软件包)

1. 项目进度桌面Mini时钟项目用来演示如何使用RT-Thread Stduio开发项目,整个项目的架构如下:在上一篇博文中简单的介绍了RT-Thread Studio一站式工具,基于STM32L431RCT6这个芯片创建工程,并修改时钟为使用外部时钟。使用RT-Thread Studio DIY 迷你桌面时钟(一)| 基于STM32芯片创建工程接下里我们开始添加I2C设备,添加S...

2020-02-20 20:59:59 8780 9

原创 使用RT-Thread Studio DIY 迷你桌面时钟(一)| 基于STM32芯片创建HelloWorld工程

1. RT-Thread StudioRT-Thread Studio 是一站式的 RT-Thread 开发工具,通过简单易用的图形化配置系统以及丰富的软件包和组件资源,让物联网开发变得简单和高效。RT-Thread主要包括工程创建和管理,代码编辑,SDK管理,RT-Thread配置,构建配置,调试配置,程序下载和调试等功能,结合图形化配置系统以及软件包和组件资源,减少重复工作,提高开发效率...

2020-02-20 20:53:24 14802 9

原创 Java基础_20 |JavaSE基础教程汇总 + 高清无水印思维导图分享

00 | Java语言概述 + 学习路线01 | Java开发环境搭建(Windows环境配置、Linux环境配置、IDEA配置)02 | HelloWorld程序带你入门Java03 | Java SE基础语法(命名规约,变量定义机制,基本数据类型,常量,运算符,流程控制)04 | 正式进入Java的世界(类和对象、类和对象的内存分配详解、构造函数)05 | Java中 [类的属性]...

2020-02-19 10:26:30 1391

原创 Java基础_19 | 综合练手小项目 —— Java多线程网络聊天室(附源码)

1. 说明此项目使用到的Java基础知识:Java网络通信Java多线程Java输入输出流Java AWT 图形用户界面绘制每个知识点参考教程:Java基础_18 | Java中网络通信程序的设计(url爬虫,TCP/UDP socket程序,socket文件传输程序)Java基础_17 | Java多线程程序设计(Java中两种创建线程的方法、多线程之间的同步和互斥)Ja...

2020-02-18 20:49:44 1488

原创 Java基础_18 | Java中网络通信程序的设计(url爬虫,TCP/UDP socket程序,socket文件传输程序)

1. Java中的网络通信程序包Java提供网络通信功能的包是java.net包,提供的网络功能有三大类:URL是三大功能中最高级的一种,通过URL Java程序可以直接送出或读入网络上的数据;Socket是传统网络程序最常用的方式,可以想象为两个不同的程序通过网络的通信信道;Datagram是更低级的网络传输方式,它把数据的目的记录在数据包中,然后直接放在网络上;本文主要讲述前两种...

2020-02-18 18:04:22 929

原创 Java基础_17 | Java多线程程序设计(Java中两种创建线程的方法、多线程之间的同步和互斥)

1. 多线程实现最核心的机制一个程序在其执行过程中, 可以产生多个线程, 形成多条执行线索。,每条线程,有产生、存在和消亡的过程,并且独立完成各自的功能,互不干扰。多线程程序运行只占用一个CPU,使用“时间片轮转法”运行程序,如图:2. Java中的多线程实现Java应用程序总是从主类的main()方法开始执行,如果main()方法中创建了其它线程,在主线程和其它线程之间轮流切换执行,保...

2020-02-18 10:53:18 928

原创 Java基础_16 | Java中的输入输出系统(字节流、字符流)

1. Java中的I/O流(input/output)Java的输入输出是以流(stream)的方式进行处理的,流是在计算机的输入、输出操作中流动的数据序列。在Java中,流的分类主要按照流的数据单位分:字节流(Byte Streams): 用于向字节流读写8位二进制的字节,主要用于读写诸如图象或声音等的二进制数据;字符流(Character Streams):字符流类用于向字符流读写1...

2020-02-17 14:40:08 1058

原创 Java基础_15 | Java中的图形用户界面包AWT使用详解

1. Java中的AWT包在Java中, AWT(Abstract Window Toolkit)是用来处理图形最基本的方式,它可以用来创建Java的图形用户界面程序,AWT包提供:图形界面组件:如:窗口、按钮、菜单等容器 :是GUI元素的容器,实现组件管理、布局管理布局管理器:用来安排图形界面组件的位置Graphics:在组件上进行图形绘制所使用的图形环境的父类事件处理对象:用来...

2020-02-16 12:12:13 10551

原创 Java基础_14 | Java中的异常处理机制详解

1. Java中的异常处理机制什么是异常异常是指程序运行中发生的非正常现象,比如:数组访问越界除数为0网络中断文件不存在……为什么需要异常处理上述非正常现象在程序运行中不可避免,所以异常处理机制使得程序更加健壮,可靠。Java中可以捕获那些异常Java将异常分为Exception(异常) 和Error(错误) 两大类:Exception类(异常):解决由程序本身及环境...

2020-02-15 17:25:03 1456

原创 做一台STM32小车需要学些什么?

今天的分享来源于我在ac乎上回答的一个问题:我觉得这个问题挺有意思的, 都是拉电话线的专业,都是在学习STM32,都对小车感兴趣,那就让我这个通信老狗来谈谈自己的见解~下面正文开始~做一个stm32小车,说难也难,说简单也简单哈哈哈~四轮车做车最简单的就是4个轮子这种,生下来就是平衡的,不用考虑太多,就是干!此照片拍摄于我大一时候,第一次见到小车,那种欣喜若狂,你懂得!回归正题!...

2020-02-15 11:35:49 5768

原创 Java基础_13 | Java中包的概念和使用详解

1.为什么需要包默认情况下编译一个.java文件,编译之后该文件中的每个类都会生成一个<类名>.class文件,我们可以直接通过类名找到这个类,比如:class A{ public void fun() { System.out.println("Hello"); }}class TestA{ public static void main(String[] a...

2020-02-14 12:02:54 921

原创 Java基础_12 | 抽象类和接口

1.抽象类和抽象方法1.1.为什么需要抽象类Java中使用抽象类是为了更好的对类进行分类。抽象类通常用来作为一个类族最顶层的父类,表示该类族所有事物的共性,用底层的类表示具体事物,比如在现实生活中有苹果类、西瓜类等等,这些具体的类都可以抽象为“水果类”。1.2.语法规则抽象类是专门设计为子类继承的类,通常都包括一个或多个抽象方法,根据继承抽象类的子类的实际情况,由子类完成其抽象方法的...

2020-02-14 12:01:22 675

原创 Java基础_11 | 面向对象特性之三 —— 多态(多态的语法规则、多态的实际用途、多态的注意事项)

1.多态的语法规则多态是面对对象编程思想中的第三大特性,用通俗的话来解释,多态其实就是:同样的一段代码可以实现不同的功能。用专业的话来解释多态:一个父类的引用类型变量它既可以指向父类对象,也可以指向子类对象(子类的引用类型变量不能指向父类),它可以根据当前时刻指向对象的不同,自动调用不同对象的方法。举个例子,在现实生活中,当上课铃响起后,所有的学生都执行进教室这个相同的操作,但是...

2020-02-14 12:00:02 716

原创 Java基础_10 | this指针详解

1.this指针及其两种用法this指针是一个系统隐含的指针,它被自动附加在非静态成员方法的参数列表中,当一个对象调用该非静态成员方法时,this会自动指向该对象,所以在函数内部就可以通过this访问该对象的成员。this指针的两种用法如下:在普通方法中,this指针指向该方法的调用者,即本次调用了该方法的那个对象;在构造方法中,this指针代表了该方法本次创建的那个对象;两种用法的...

2020-02-14 11:58:49 964

原创 Java基础_09 | 子类中对父类已有方法的重写(重写的语法规则、重写与重载的区别、重写的示例程序)

1.重写的语法规则1.1.为什么需要重写一个子类在继承父类方法的时候,如果继承的父类方法不能满足新的要求,这个时候就需要对父类的方法进行重写,重新设计该方法。1.2.重写的语法规则方法名要相同;参数列表要相同;返回值类型要相同;访问权限只能同级或者扩大,不能缩小;1.3.重写与重载的区别重写是指子类对继承的父类已有方法的重新设计;重载是指在一个类中,可以出现多个同名方法,...

2020-02-14 11:57:06 919

原创 Java基础_08 | 面向对象三大特性之二 ——继承(关键字extends的使用、继承的原则、(同包)继承的权限问题、使用super调用父类构造方法)

1.继承的基本语法1.1.什么叫继承继承是面向对象语言中一种由已有类创建新类的机制,即:一个新的类可以从已有的类获取其已有的属性和方法。这个新的类称为子类,也叫派生类;已有的那个类称为父类,也叫基类;比如下图:1.2.为什么需要继承代码得到极大的重用;形成一个类的层次结构;更好的模拟了现实世界(遗传性);1.3.继承的基本语法Java中类的继承使用关键字exten...

2020-02-14 11:55:25 647

原创 Java基础_07 | static修饰符详解(统计出一个类总共产生了多少个对象、一个类只能生产一个对象的设计方法)

2019年4月25日15:42:14开始语法规则static修饰符static变量或方法表示该变量是静态的,是属于类的,该类的所有对象共用这一个静态变量,也可以直接通过类名.静态变量名直接访问。另外,用static修饰的属性和方法虽然是静态的,但他们依然是属于每个对象的,所以也可以通过对象来访问。注意,如果static修饰的属性和方法是私有的,外部依然不能访问。非静态方法可以静态属性...

2020-02-14 11:53:15 1126

原创 Java基础_06 | 面向对象三大特性之一 —— 封装(访问控制符的第一个用法)

1.为什么需要访问控制符在上一篇文章中(【Java基础学习笔记】4 - 正式进入Java的世界(类和对象及其内存分配详解) )讲述了Java中类和对象的基础,详细的解析了类和对象的内存分配问题,在最后简单的讲述了如何去访问堆中对象的属性和方法 —— 使用保存了对象地址的变量访问(和指针类似)。安全性大大提高这种直接通过变量去访问对象的方式是极不安全的,Java中为了提高程序的安全性,加入...

2020-02-14 11:51:33 652

原创 Java基础_05 | Java中 [类的属性] 和 [类的方法中的局部变量] 两者初始化问题

Java变量初始化问题详解(局部变量、类的数据成员变量)

2020-02-14 11:49:59 580

原创 Java基础_04 | 正式进入Java的世界(类和对象、类和对象的内存分配详解、构造函数)

类和对象及其内存分配详解

2020-02-14 11:49:01 1190

原创 Java基础_03 | Java SE基础语法(命名规约,变量定义机制,基本数据类型,常量,运算符,流程控制)

文章目录1.命名规则2.基本数据类型3.常量(重点)3.1.整型常量3.2.浮点型常量3.3.字符型常量3.4.布尔型常量4.数据类型转化4.1.自动类型转化4.2.强制类型转化5.运算符6.流程控制6.1.顺序6.2.分支条件分支if_else多重分支switch6.3.循环1.命名规则在Java语法中,命名规则有三点:不允许和关键字重复符号只允许下划线_和美元符$不允许以数字开头...

2020-02-14 11:45:48 718

原创 Java基础_02 | HelloWorld程序带你入门Java

Hello,World程序带你入门

2020-02-14 11:43:57 585

原创 Java基础_01 | Java开发环境搭建(Windows环境配置、Linux环境配置、IDEA配置)

1. Windows配置Java环境下载JDK8JDK即Java Develop Kit,广泛使用的版本是JDK 8,可以在官方网站下载,如果觉得官方网站比较慢的话,可以访问我提供的不限速下载站下载(http://www.mculover666.cn/download/):安装JDK8下载之后运行安装包,一路next即可完成安装,建议安装到C盘默认路径。配置环境变量(重点)首先配置J...

2020-02-14 10:58:11 963

原创 Java基础_00 | Java语言概述 + 学习路线

1.Java语言的诞生1991年,Sun公司有一群异想天开的上层领导觉得观众点播电视节目是个发展趋势,于是派Jame Gosling建立一个团队去开发电视机顶盒~1994年,电视机顶盒不符合当时的用户理念,市场前景不是太好~1995年,Java第一个版本发布2000年开始,Sun公司相继推出了J2ME、J2SE、J2EE等三大平台~2014年Java8正式发布,这是一个非常重要的大版本...

2020-02-14 10:15:19 681

原创 透过小米10,来看看AIoT中蕴藏着的前沿高端技术

写这篇文章,没有别的目的,只是想透过小米10,来看看那些技术人应该了解的前沿高端技术!1. WIFI 6目前国内普遍使用的是WIFI 4和WIFI 5,相比较起来,WIFI6 技术有以下三个优势,更好的适应5G:吞吐量大幅提升:提升16倍;TWT唤醒和睡眠技术:这个技术是之前的WIFI技术所没有的,在未来的AIoT应用中,该特性功能会被广泛应用,主动通知设备进入睡眠模式,主动唤醒设备;...

2020-02-13 15:24:41 1960

bh1750FVI中文数据手册.pdf

单片机和嵌入式开发中常用的16位数字输出型环境光强度传感器(IIC接口)

2019-07-16

Image2Lcd 2.9(破解版).7z

Image2Lcd 是一款工具软件,它能使你把各种来源的图片转换成特定的数据格式以用来匹配单片机系统所需要的显示数据格式。Image2Lcd支持的输入图像格式包括: BMP, WBMP, JPG, GIF, WMF, EMF, ICO, 等等。Image2Lcd的输出数据类型包括定制的二进制类型、C语言数组类型和标准的BMP格式、WBMP格式。Image2Lcd能可视调节输入图象的数据扫描方式、灰度(颜色数)、图像数据排列方式、亮度、对比度、等等。对于包含了图像头数据保存的图像数据文件,Image2Lcd能重新打开作为输入图像。

2019-07-13

network debug assitant @mculover666

很好用的一个网络调试助手,简单实用,体积小,分享出来~

2018-12-16

ALINX_ZYNQ开发平台基础教程

ALINX_ZYNQ开发平台基础教程V1.02,分享给一起学习Zynq的小伙伴~~~

2018-10-14

RT-Thread文档中心APP

RT-Thread文档中心APP,,上传分享该APK方便开发者使用,查看帮助文档

2018-07-27

RT-Thread编程指南CN

RT-Thread编程指南CN,,上传分享该文档方便开发者使用

2018-07-27

常用半导体存储器脑图详解

该图片由Xmind绘制生成,详细的常用半导体存储器的分类以及每种存储器的特性

2018-07-05

8051指令系统脑图

该图由xmind绘制生成,详细的展示了8051指令系统架构以及具体说明

2018-07-04

空空如也

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

TA关注的人

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