自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 STM32CubeMX使用——Error: Flash Download failed - “Cortex-M7“

起初以为是STM32CubeMX没有配置好,但尝试一番无法解决,转而搜索“Error: Flash Download failed - “Cortex-M7”,网上找了一圈,仍无法解决,但几乎可以确定的是,这是个“下载时操作flash”的异常。手上有一个正常的工程,用对比软件看了一下正常工程和异常工程的调试信息(调试信息就是下载的时候Build窗口的打印),发现“复位方式”有差异。再然后就是百度“设置jlink复位方式”,设置成“reset pin”就好了。左边是正常的工程,右边是异常的工程。

2023-12-28 16:22:48 696

原创 linux启动 inittab

因此,会先运行/etc/init.d/rcS.d/里面的服务,再启动/etc/init.d/rc5.d/里面的服务。si::sysinit:/etc/init.d/rcS 系统启动时运行/etc/init.d/rcS程序。最后会执行/etc/init.d/rc S,/etc/init.d/rc是进程,S是运行级别。init进程会分析/etc/inittab配置文件来启动各种服务。查看/etc/init.d/rcS文件。linux上电脚本启动流程。

2023-06-06 21:22:04 218

原创 stm32基础项目——4天搞定智能小车系列(电机驱动)

前言:电机就是个用电器,你给它正负极接上电源,它就能转,我们通过stm32能控制的是电机转动的速度和方向。我们的智能车一共有三个轮子,两个轮子是我们通过电机控制的,还有一个轮子只起到固定作用。理想状态下:当两个电机转动速度相同时,小车就会直行;当左电机比右电机转动快时,小车就右转;当右电机比左电机转动快时,小车就左转。图中用红线圈起来的就是起固定作用的万向轮,手里抓着的就是直流电机。一、让电机转起来我们这里使用的是直流电机,常见的还有步进电机,两种电机的原理不同,驱动方式也不同,但如果是有编码

2020-11-01 02:16:17 15135 2

原创 stm32基础项目——智能小车(红外避障)

前言:小车的避障功能可以通过红外或者超声波模块来实现,这里先讲讲使用红外对管来实现,超声波的实现涉及到定时器的应用,我们放在后面讲解。红外对管图片:器件有三个引脚,VCC和GND就不说了,那个OUT就是输出信号用的,说是信号,其实就是高低电平,没有遇到障碍物时电平信号一、原理小讲红外模块和stm32的连线如下只要三根线,VCC接开发板的3.3V,GND就接GND,红外对管的OUT找个普通IO引脚就可以。一、避障流程图...

2020-10-22 01:08:23 21068 3

原创 stm32——外部中断及中断概念小讲(一)(初学者参考)

(零基础请看本篇,有基础的直接跳)下一篇内容会涉及外部中断的配置代码、中断处理函数的编写,下下篇会围绕中断控制器展开,涉及“中断向量表”和“中断嵌套”的内容。前言写《stm32基础项目——智能小车(红外避障)》时发现,对零基础的学弟学妹来说直接上手有些困难,因此还是讲讲有关中断的概念。一、何为“中断”?大白话就是:“cpu运行时被其他事件打断,然后放下手中的事转而去执行其他的事”,与中断相对应的还有个概念叫“查询”。关于这两个概念,我举个例子你就明白了。例:消防官兵执勤平时消防官兵都在训练,

2020-10-19 23:44:52 1168 1

原创 stm32基础项目——4天搞定智能小车(序)(初学、入门)

前段时间秋招,卓越班的学弟学妹们问了我很多有关小项目的事,但我工作以后也属实有点忙,不能及时地回复消息,本着卓越班“传帮带”的优良传统,我打算把这些嵌入式stm32入门的小项目(后续有时间会加上linux相关内容)都整理成博客,方便新生和其他入门嵌入式的小伙伴参考,最重要的还是希望大家通过这些小项目积累经验,在面试时能够问有所答!具体的代码和文档资料我会放在公众号“游侠嵌入式”,回复对应的关键字就会有下载链接。一、项目简介基于stm32f103实现的一个简单智能小车,具有“直行”、“转弯”、“避障”、

2020-10-18 14:30:19 15829 5

原创 内核邮件列表订阅(已醉)

emmmmm,我跟你说qq邮箱、网易163邮箱、网易企业邮箱、outlook都不行,按照对应的内容发邮件,得到的内容都是一堆乱码(qq邮箱根本发不出去)用gmail吧,我用gmail搞成功了,但用gmail发订阅邮件,前面几次也是乱码,但当我过了几天一看,有一篇成功的邮件!(我用了VPN fan 墙,不翻墙怕是搞不了哦?)...

2020-08-10 22:16:48 252 1

原创 insmod: can't insert 'xx.ko': File exists 问题解决

rmmod的时候不要加“.ko”就行了。。。。。加上“.ko”,卸载不成功,不信你lsmod看一下。。。。以前用的2.6的内核,没这个问题,新内核有这个问题。...

2020-04-07 10:47:16 4978

原创 linux shell之wc

wc即word count,是个统计工具,可以统计出文件的行数、单词数、字符数。wc file显示出文件的行数、单词数、字符数wc -l file只统计行数wc -w file只统计单词数wc -c file只统计字符数wc -F file打印文件最长一行的长度...

2020-02-26 15:29:01 552

原创 linux shell之head、tail

简介head命令默认显示文件的前十行;tail命令默认显示文件的末十行。常用:head -n 5 file打印出file文件的前五行head -n -5 file打印出file文件出去最后5行的所有内容tail -n 5 file打印文件的最后5行tail -n +6 file打印文件除了开头5行的所有行tail的-f选项会持续跟踪文件内容的变化...

2020-02-26 15:24:01 272

原创 linux shell之分割文件名和后缀

直接看例子吧1、非贪婪操作var=photo.jpgecho ${var%.*}结果:photoecho ${var#*.}结果:jpg2、贪婪操作var=sina.com.cnecho ${var##*.}结果:cnecho ${var%%.*}结果:sina...

2020-02-26 13:43:16 2446

原创 linux shell之sort、uniq

一、简述sort用于排序,uniq可用于去重。uniq只能对排过序的数据使用。sort常用选项:-n 按照数字排序-r 逆序排列-M 按月份排列二、略深入sort使用-k选项指定排序键值sort -nk 2 filename该命令对指定文件按照数字大小排序,比较的是每行的第二列。sort -nk 2,3 filename该命令会提取第一列数据的2、3两个字符作为键值s...

2020-02-26 11:41:22 244

原创 linux shell学习之tr

一、简述tr即(translate),该命令可以将一组字符替换为另一组字符。例子:echo "HELLO" | tr 'A-Z' 'a-z'结果:HELLO被替换为helloecho 'hello this is the usage of tr' | tr 'a-zA-Z' 'n-za-mN-ZA-M'结果:uryyb guvf vf gur hfntr bs ge使用tr实...

2020-02-26 10:25:53 478

原创 linux shell学习之find

find命令可以用于查找特定的文件和目录。一、基础用法find /home/$USER 会列出用户主目录下的所有文件和目录find /home/$USER -printprint选项是打印的意思,默认换行打印find /home/$USER -print0使用print0会将换行符改为空字符进行输出二、其他选项name选项find /home/$USER -name "*.t...

2020-02-18 12:10:17 147

原创 linux shell学习之cat

cat为拼接命令,cat即concatenate(拼接)。一、常见用法:cat filename可以显示出文本信息cat filename1 filenam2 filename3可以拼接这三个文件的内容,输出在标准输出中echo "hello " | cat -可以从标准输入中读取内容。“-”代指标准输出文件。二、其他选项cat -s filename去除多余的空白行...

2020-02-18 10:33:04 295

原创 linux shell学习之 sed(基本用法)

一、概述sed是一种流编辑器,与交互式编辑器不同,流式编辑器会在处理数据之前基于预先提供的一组规则来编辑数据流。sed可以从标准输入(stdin)获取输入,处理结果从标准输出(stdout)输出。sed会一行一行地读入输入,然后按照预设命令对每行数据进行操作,若输入的是一个文件的内容,sed不会在源文件上修改,而只是在标准输出打印结果。二、用法初涉1、替换操作echo "hello wo...

2020-02-16 21:17:14 205

原创 学习笔记(06):Linux Makefile工程实战视频教程-2.6 库的生成和使用:静态库和动态库...

Makefile工程实战视频培训课程,该教程介绍Linux环境下开发软件编译Makefile的基础知识、项目构建、一步一步从零开始写一个模拟MP3项目的Makefile。

2020-02-09 16:43:02 161

原创 学习笔记(05):Linux Makefile工程实战视频教程-2.4 条件执行

Makefile工程实战视频培训课程,该教程介绍Linux环境下开发软件编译Makefile的基础知识、项目构建、一步一步从零开始写一个模拟MP3项目的Makefile。

2020-02-09 15:34:18 144

原创 嵌入式软件工程师2019校招小结

时间确实过得快,从8月中旬到10月中旬,两个月的时间秋招也快完了,今天突然想记录一下这段经历,一来给自己一个交代,二来希望调整一下自己的状态,为下一阶段的学习从心理上开个小头。先说说自己的背景:西安双非邮电高校,计算机科学与技术专业,英语六级507,曾获大学生电子设计大赛获陕西省一等奖,非党员非班干部。我投的公司有华为、中兴、小米、oppo、vivo、海康威视、CVTE、深信服、诺瓦科技,一共...

2019-10-16 23:20:31 2206 1

原创 Linux内核学习——链表的实现及应用

这学期开了陈莉君老师代的linux内核这门课,周一主要讲了内核中的链表,我这里写篇博客记录一下学习所得。今天博客里的数据结构和函数都来自2.6内核文件linux-2.6.22.6\include\linux\list.h,参考资料主要是陈老师编写的《Linux操作系统原理与应用》。这里主要以书上的一个小例子来分析。代码如下#include <linux/module.h>#i...

2019-09-04 00:56:25 230

原创 Makefile学习之变量

本文内容基本参考《GNU make中文手册》。1、变量的引用引用变量使用 $ (VAR)或$ {VAR},与shell脚本不同的是,在Makefile中必须用括号将变量名包裹起来,否则Makefile会默认变量第一个字母为变量名。2、变量的定义Makefile中定义变量和C语言define差不多,是严格的文本替换。变量的定义有递归展开式和直接展开式两种。递归展开式变量一般是通过defi...

2019-08-06 00:31:52 180

原创 U-boot源码分析之配置和编译

使用uboot前,需要经过配置和编译的过程,在学习了韦东山老师的视频后,我打算自己来过一遍uboot的配置和编译。配置进入Makefile执行配置命令make smdk2410_config进入uboot主目录下的Makefile,搜索smdk2410_config可以查到这几行smdk2410_config : unconfig @$(MKCONFIG) $(@:_config=) ...

2019-08-04 01:58:04 181

原创 stm32驱动DHT11温湿度模块使用方法和问题小结

最近在总结做过的几个项目,今天小结一下DHT11模块的使用。对DHT11的使用,就是编写时序和stm32进行通信。DHT11和stm32是通过一根线进行通信的,双方通过这根线上的电平变化来识别各种信号。DHT11每次传输数据会输出40bit的数据,即5个字节,它们的含义如下:每一位bit是0还是1是通过高电平的持续时间来判断的,如下两张图所示,‘0’和‘1’都是先持续50us的低电平,...

2019-07-26 11:10:08 8354

原创 signal函数原型解读

今天复习信号,被函数指针和signal函数的原型绕住了,看了几篇博客,这里记录一下。以下内容摘自signal() 函数详解,想要理解signal的原型,要先理解返回值是函数指针的函数指针所指向的函数的形式,说起来有点绕,就是说定义一个函数指针,这个指针指向一个返回值是函数指针的函数。void ( signal( int sig, void ( handler)( int )))( int );...

2019-07-23 15:01:38 2140

原创 linux线程同步与互斥——互斥锁、条件变量、信号量

互斥锁、条件变量、信号量是线程间同步与互斥的三种基本方式。互斥锁互斥锁用于互斥操作,用于对临界资源进行互斥操作,运行机制如下:若线程A和线程B共享变量count,则若A和B要对count操作时必须都要先获取互斥锁,只要有一个线程获取互斥锁,则另一个线程在请求互斥锁时会被阻塞,直到互斥锁被释放才能获得它进而对count进行操作。例:#include <stdio.h>#incl...

2019-07-23 00:37:35 340

原创 s3c2440学习笔记——CPU工作模式和异常处理

以我的s3c2440为基础,分析arm9下CPU的工作模式和异常处理。CPU有7种工作模式:● 用户模式(user 模式),运行应用的普通模式● 快速中断模式(fiq 模式),用于支持数据传输或通道处理● 中断模式(irq 模式),用于普通中断处理● 超级用户模式(svc 模式),操作系统的保护模式● 异常中断模式(abt 模式),输入数据后登入或预取异常中断指令● 系统模式(sys...

2019-06-20 17:21:23 394

原创 s3c2440学习笔记——重定位和链接脚本

声明:本博文仅供作者日常学习记录所用,如有错误请指明并说明原因,若能添加正确解答感激不尽。—————————————————————————————————————今天温习了韦老师有关代码重定位的视频,小结一下所得。什么是重定位?通俗地讲,就是将代码复制一份到其他地方。以我的jz2440为例,假设开发板为nor启动(板载nor flash有2M大小且地址是从0x0000_0000开始),...

2019-06-18 15:14:57 218

原创 s3c2440笔记——内存控制器

声明:本博文仅供作者日常记录所用,若有错误,欢迎指明错误之处来进行斧正,若是杠精无理取闹,请自己滚去找厕所吃屎。—————————————————————————————————————对内存控制器的学习,主要理解一张图和几个寄存器即可。图这是s3c2440的内存编址映射,地址从0x00000000到0x40000000。一共1G空间,分成了8份,每份128MB,虽然每份分了128MB,...

2019-06-17 17:35:24 239

原创 linux驱动入门——按键中断(基于s3c2440v3)

之前了解了一下linux的模块编程,也对简单字符设备驱动框架有了一定了解,前两天看了韦东山老师有关按键中断的视频,自己又查阅了一些资料之后总结出以下知识点,希望能对同样是初学linux驱动的朋友们有一些参考价值。一、简单使用从使用的角度分析,使用linux内核的api来进行最简单的中断注册和中断注销。中断注册:int request_irq(unsigned int irq,irq_han...

2019-04-13 15:08:47 283

原创 linux驱动入门——驱动模块概述

最近在学习linux驱动的知识,虽然也写了个简单地led驱动,但整个驱动模块的概念还是很模糊,这篇博客就结合郑强老师的《linux驱动开发入门与实践》来梳理一下驱动模块的框架、体系。声明:入门阶段以使用目的为主,并不过多涉及内核。一、驱动模块的组成如图所示,一个驱动模块由头文件、模块参数、模块功能函数、模块加载函数、模块卸载函数、模块许可声明组成,其中头文件、模块加载函数、模块卸载函数、模块...

2019-04-11 21:02:25 441

原创 (.bss段和静态变量 malloc和free)C语言之内存分配

以前学习C语言时没有过多地深入到底层,导致对许多的原理、机制理解得不够透彻,内存分配就是其中之一,恰巧今天看了有关内存分配的知识就写篇博文来记录一下,毕竟好记性不如烂笔头嘛。我想很多同学对C语言中的堆、栈这些概念都似懂非懂,我在网上找了一篇很好的博文大家可以参考一下,链接如下(https://blog.csdn.net/youoran/article/details/10990815)。(以下...

2019-04-05 11:40:00 1004

原创 (char*a 和 char a[])C语言之数据存储

今天在读《C和指针》时,读到了“字符串常量”这个东西,书里提到了“字符串常量的直接值是一个指向字符类型的指针,即char*,因此不能直接将一个字符串常量赋值给字符数组”,读到这里我也是似懂非懂,因此特地去网上查了查。以下是我的收获:以下部分内容摘自(https://blog.csdn.net/yahohi/article/details/7427724)首先要搞清楚编译程序占用的内存的分区形式...

2019-04-04 21:52:49 16262 5

原创 C语言之数据类型

参考博文C语言再学习 – NUL和NULL的区别对字符串常量 的理解基本数据类型4种基本数据类型——整型、浮点型、指针和聚合类型(如数组和结构)。整型整型一共有9种——char , signed char ,unsigned char ,short int ,unsigned short int ,int ,unsigned int , long int ,unsigned long ...

2019-04-04 20:18:10 146

原创 C语言之存储类

今天阅读了《C和指针》有关“数据”那一章节的内容,主要梳理一下作用域、链接属性、存储类型(C primer plus中为存储时期)。存储类是《C Primer Plus》中提出的概念,共有5种可能的类型:这五种存储类是由存储时期(存储类型)、作用域、链接属性这三个属性共同决定的,这三个属性相互关联但又不尽相同,我们来一 一分析。作用域作用域有4种——文件作用域、函数作用域、代码块作用域和原...

2019-04-04 20:17:41 155

原创 面试准备之——c语言(绪)

前些天投了CVTE的嵌入式应用岗位,昨天和一位姓姚的HR电话了完成了一面,面完之后个人感觉不是很好。HR挺温和的,问的问题大多也是一些基础,特别是C语言,但因为我是半路出家学的计算机,C语言当时是跟着C primer plus 稍稍过了一遍,基础很是薄弱,所以确实被问倒了。为了9月份或者更多的实习机会,我决定把C语言重新巩固一遍!主要的参考书有《C和指针》、《C陷阱与缺陷》、《C专家编程》、《C ...

2019-04-04 08:21:58 234

原创 jz2440学习笔记———代码重定位相关

实验引导:在main函数中引入全局变量a时,若将连接后的文件烧写在nand flash上,则可以访问修改全局变量a,若将连接后的文件烧写在nor flash上,则只可访问a,不能修改a。这是由于烧写在nand flash 上的代码会被加载到4K的片内内存SRAM上,全局变量a放在内存里是可读可写的;但将代码烧写在nor flash上时,cpu可以直接通过内存控制器来访问nor flash,然而全...

2019-03-10 09:36:09 256

原创 jz2440学习笔记——自己动手写printf函数

这部分是和jz2440的uart串口通信想关联的一个实验。看完视屏、结合网上的博客,总结以下知识点。1.printf函数原型:int printf(const char format, …);const charformat 是个静态字符串常量,…是可变参数。可变参数不限个数、类型。2.调用printf函数时,format及可变参数被顺序保存在栈中,因此在已知format变量的地址时,可以通...

2019-03-09 00:10:57 329

原创 jz2440学习笔记——uart串口通信

jz2440学习笔记——uart串口通信uart工作原理流程:1.jz2440和pc机约定好传输的格式,如:波特率、数据位、校验位、开始位、结束位。2.jz2440通过TXD引脚逐位发送数据到pc端的RXD引脚。过程:jz2440初始为高电平,当其变为低电平时表示准备发送数据,此即开始位;之后jz2440从移位寄存器中逐位读出数据发送给pc机;发送完数据后,若有校验位则发送校验位,若无校验位...

2019-03-09 00:10:35 360

原创 stm32入门——编码器自调平小车

stm32入门——编码器自调平小车最近在做一个双车追逐的项目,一开始的方案为:步进电机+中断调平,但实验后才发现步进电机的失步很严重,再加上轮子打滑等原因小车根本就走不直!后来听取了学长的意见,采用直流电机+编码器+中断的方式进行设计,成功地解决了小车走不直的问题。编码器原理这部分我在CSDN上看了不少博客,大牛们都总结得很好,这里我推荐一篇编码器使用原理(不知道这样算不算侵权,如果侵权了我...

2018-12-06 15:21:11 2502

原创 stm32入门——定时器输入捕获实验

stm32入门——定时器输入捕获实验实验目的获得对应GPIO口高电平的持续时间原理简介运用中断+定时器的方法,在上升沿到来时触发定时器中断,这是计时的起点;在下降沿时再次触发中断,这是计时的终点。如上图,寄存器CNT的值从0增长到ARR,等于ARR后再次从0开始计数。在t1时触发上升沿中断,此时CNT的值为CCRX1;在t2时触发下降沿中断,此时CNT的值为CCRX2。t1到t2之间的...

2018-12-02 18:07:32 2853 1

空空如也

空空如也

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

TA关注的人

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