1.为什么不是gcc 之前我们花了三篇文章介绍Linux下如何进行C语言编程: Linux C语言编程(上篇) | gcc的使用 Linux C语言编程(中篇) | make的使用 Linux C语言编程...(下篇) | gdb的使用 这是为了给接下来的Linux下嵌入式开发打好基础,尽快熟悉Linux下c编程,但是在开发stm32的时候,编译工具链要使用gcc-arm-none-eabi,为什么不是gcc...这就要说到linux下的交叉编译了,因为我们要在PC机上编译出可以运行在ARM上的程序,使用gcc编译出的是在PC上运行的程序,所以我们要使用gcc-arm-none-eabi进行交叉编译~ 2.gcc-arm-none-eabi...Windows,Linux,MacOS上的交叉编译。...==下一篇==:Linux下开发stm32(二) | 使用openocd下载与调试 (https://blog.csdn.net/Mculover666/article/details/84900665
硬件同事在调研通过PCM音频模块,实现一个PCM音频流远程播放功能; 一共使用了3个音频模块: 1、CJMCU5102模块:PCM5102为 I2S-DAC 解码芯片,支持I2S输入,没有参数配置;...2、WM8978模块: WM8978为DAC+ADC芯片,除了DAC解码功能,还带了一个MIC录音功能,支持I2S输入,支持I2C配置相关参数; 3、VS1053模块:VS1053是音频编解码芯 片,...模块,但使用WM8978官方的例子,依旧只是杂音,无奈,才找了VS1053进行验证; 很遗憾,CJMCU-5102, WM8978都只能放弃,同硬件同学商量,最后选型VS1053; VS1053作为一个硬件...decode,输入使用简单的SPI,将音乐文件直接扔进去,熟悉的音乐就输出了,确实是简单好多; CJMCU5102和WM8978使用的都是I2S作为输入,复杂的MCLK和BCK控制,虽然使用示波器都达到了预期的输入频率...,但出来的声音一直都是杂音,困扰很久,理论上没有问题,可能还是哪里没配置好,不得其道,只能放弃; 领导是老领导,技术不行,态度来凑,作为一个半道出家的STM32开发同学,在没有其他同学的支持情况下,每天折腾到晚上
一、WIFI模块的介绍 1、WIFI模块的介绍 在本文中使用的WIFI是正点原子的esp8266,其正面图如图1所示,背面图如图2所示,ATK-ESP8266 是 ALIENTEK 推出的一款高性能的...2、WIFI模块的模式 WIFI模块的工作模式: 1、AP模式,该模式下ESP8266 WIFI模块本身作为一个热点,让其它设备连接从而能够上网,该模式下需要配置的参数有创建热点名称、设置加密方式、以及设置热点密码...3、WIFI模块的AT指令使用 esp8266通信使用AT指令集进行通信,并且该模块默认是 AT 指令状态,模块波特率:115200(8 位数据位,1 位停止位),如下是WIFI模块的常用AT指令。...注:ATK_ESP8266 模块仅在 TCP Client 和 UDP,支持透传模式 二、STM32单片机和WIFI模块的通信 1、介绍 ESP8266 WIFI模块通过串口与单片机进行通信,在本文使用串口...3进行通信,接线方式WIFI模块的发送引脚与单片机的接收引脚进行连接,WIFI模块的接收引脚与单片机的发送引脚进行连接,通信使用AT指令集进行通信,WIFI模块和手机、电脑等通信使用的是TCP/IP网络协议栈进行通信
Linux内核的作用 ? 管理内存 提高效率,管理可用内存的方式,以及物理和虚拟映射所使用的硬件机制。 调度任务 某些机制执行从用户空间到内核的函数调用。...内核模块 ?...arch 表示各种各样的平台 crypto 安全加密 drivers 驱动各种各样的硬件 fs 文件系统 lib 各种各样的库 net 网络功能 sound 声卡 查看所有模块 lsmod...查看指定模块的详细信息 modinfo 模块名 动态加载模块 modprobe 模块名 动态卸载模块 modprobe -r 模块名 ?...详细学习可参考官网: http://www.tldp.org/LDP/tlk/tlk.html https://mirrors.edge.kernel.org/pub/linux/ ?
一、何为模块? 文件系统、设备驱动程序、网络协议都可以理解为模块。模块本质也是普通的软件系统。 二、热插拔 硬件层面:只在不断电、不关闭系统的情况下增加或者删除对应部件,比如电源、硬盘。...一些高端设备硬盘是支持热插拔的,再比如我们的Windows笔记本电脑,电池也是可以在通过适配器供电的情况下更换。计算机硬件的热插拔底层需要操作系统的支持。 软件层面:这一概念在软件行业也有。...个人觉得安卓的热修复也是异曲同工之妙。 这次说到的是Linux模块相对于内核的热插拔,可以将模块看做某一硬件设备,内核看做整台物理计算机。...还有一个常见的直观例子,比如用VMware软件虚拟的物理机或者物理机本身是允许操作系统在运行时加载第三方设备:移动硬盘、U盘、手机等。 微信公众号:技术很有趣
目录 一、概述和硬件 1、概述 2、硬件 1、电压 2、i2c地址 3、使能脚 二、寄存器功能 MODE1寄存器 外面调用的接口 PCA9685是一款基于IIC总线通信的12位精度16通道PWM波输出的芯片...可以多个模块级联。箭头部分可以更改设备id。 可以控制16路输出端的开、关、pwm以及占空比。...此外还有一个v+引脚,这个引脚是给舵机供电用的,可以接稍微高一点的电压。 2、i2c地址 有6个地址控制脚,通过这些引脚可以控制设备的i2c地址。...3、使能脚 模块有一个OE反使能脚,这个引脚低电平使能,不接的话模块内部默认已经接地使能了,所以正常使用可以不接。...注意啊:这个寄存器的设置好像掉电会保存的!
(5)RCC52与STM32接线图 (6)RCC52代码 7、备注: 8、工程代码链接:[代码链接](https://download.csdn.net/download/weixin_45771489...●FIFOLevelReg指示FIFO中存储的字节数 ●ControlReg不同的控制寄存器 ●BitFramingReg面向位的帧的调节 ●CollReg RF接口上检测到的第一个位冲突的位的位置...SPI接 口可处理高达10Mbit/s的数据速率。在与主机微控制器通信时,MFRC522 用作从机;在SPI通信中MFRC522模块用作从机。SPI时钟 SCK由主机产生。...(5)RCC52与STM32接线图 管脚 单片机IO口 SDA PB12 SCK PB13 MOSI PB15 MISO PB14 ICQ 悬空 GND GND RST PA8 VCC VCC (6)...RC522_Init(); //初始化射频卡模块 // BEEP_Init(); //初始化蜂鸣器 OLED_Init(); //初始化OLED OLED_Clear(); //清屏
Linux 内核今年就要满 30 岁了! 如果你像我们一样对此特别重视,那么让我们本周用几个特别的文章来庆祝 Linux。 今天,我们先来看看来自社区对“你不能没有哪个 Linux 内核模块?...— Stephan Avenwedde #3 最有用的内核模块无疑是 snd-hda-intel,因为它支持大多数集成声卡。我可以一边听音乐,一边在 Linux 桌面上编码一个音频编曲器。...所以,对于那些让软盘磁带机在 1990 年代的 Linux 上工作的无名英雄,你真是太厉害了! — Jim Hall #8 嗯,这很简单。是 kvm 内核模块。...就个人而言,我无法想象在没有虚拟机的情况下完成日常工作。我愿意相信我们大多数人都是这样。kvm 模块在使 Linux 成为云战略的核心方面也发挥了很大作用。...你的生活中不能没有什么 Linux 内核模块?
实现超声波模块测距 1、超声波模块介绍 1.1 超声波测距原理及系统组成 超声波测距是借助于超声脉冲回波渡越时间法来实现的。...1.2 HC-SR04模块原理 HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测 距精度可达高到3mm,模块包括超声波发射器、接收器与控制电路。...(2)模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;(3)有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声 波从发射到返回的时间。...注:1、此模块不宜带电连接,若要带电连接,则先让模块的GND端先连接,否则会影响 模块的正常工作。 2、测距时,被测物体的面积不少于0.5平方米且平面尽量要求平整,否则影响测量的 结果。...,首先模块需要触发信号,触发信号是不低于10us的TTL电平,也是就需要控制IO输出不低于10us的高电平脉冲,模块接收到此脉冲信号后,内部会输出8个40KHZ脉冲,然后模块会输出与检测距离相应时间的高电平作为回响信号
Linux是基于模块的,所有的驱动都是模块化的:管理模块的命令:1、列出系统中所有已经加载的模块的大小与名称等:lsmod或者cat/proc /modules ty@tonylinux:~$lsmodModuleSizeUsedbyrfcomm402160l2cap262445rfcommbluetooth500204rfcomm...:modinfo可以查看模块的信息,通过查看模块信息来判定这个模块的用途。...modprobe我们常用的功能就是挂载模块,在挂载某个内核模块的同时,这个模块所依赖的模块也被同时挂载;这是于insmod挂载模块有区别的地方。...模块名 5、depmod创建模块依赖关系的列表这个模块管理工具是创建模块依赖关系的列表,有几个参数我们注意一下就行了,目前的的Linux发行版所用的内核是2.6x版本,是自动解决依赖关系,所以这个命令知道就行了...,一般的Linux发行版本都有/etc/modules.conf或/etc /modprobe.conf。
大家好,又见面了,我是你们的朋友全栈君。 介绍了一种以ARM为核心的嵌入式语音识别模块的设计与实现。...模块的核心处理单元选用ST公司的基于ARM Cortex-M3内核的32位处理器STM32F103C8T6。...本模块以对话管理单元为中心,通过以LD3320芯片为核心的硬件单元实现语音识别功能,采用嵌入式操作系统μC/OS-II来实现统一的任务调度和外围设备管理。...经过大量的实验数据验证,本文设计的语音识别模块具有高实时性、高识别率、高稳定性的优点。...STM32系列提供了全新的32位产品选项,结合了高性能、实时、低功耗、低电压等特性,同时保持了高集成度和易于开发的优势,将32位MCU世界的性能和功效引向一个新的级别。
第一时间看干货文章 1 STM32是一款单片机,它由意法半导体公司制造。...图5 shell 2中的bash地址 既然是多进程依赖了内存管理单元,那么在使用嵌入式linux时只开一个进程可以吗?肯定是不可行的!...总结 综合以上内容,linux系统对内存管理单元有极强的依赖,若在没有MMU的处理器中运行linux,恐怕整个系统只能停留在Uboot阶段了。...由于Cortex®-m处理器没有内存管理单元,因此跑不了linux系统。任何事情都不是绝对的,如果你重写了linux内核且搭配足够大的内存芯片,从理论上来说是可以省掉MMU的。...咱还是留个心眼吧 干货 | 详解 stm32 在线 IAP 升级 如何搭建一台永久运行的个人服务器?
1. Serial 2. Input 3. I2C 4. USB 5. Video 6. Audio 7. Block 8. MTD
重要声明 看过我前面51小车博客的都知道我是软件工程专业的,对于硬件方面都是因为感兴趣自学的,这不,因为今年寒假放假比较早,趁这个时间学习了STM32相关知识,经过近一个月的学习对于STM32算是入门了...,为了检验自己的学习效果,我决定就着51小车的架子用STM32试试,经过一个下午的忙活算是成功了!!!...动手之前你需要这些: 硬件电路连接相关能力 C语言基础能力 STM32定时器、中断、串口等基础知识 查阅相关元件开发手册的能力 一定的动手能力 准备材料 正点原子STM32精英开发板(STM32F103ZET6...)、LM2596降压模块、HC-06蓝牙模块、MG995系列180度舵机、L298N电机驱动、任意品牌遥控车车架带电机、12V聚合物锂电池一块 部分原始材料图片 程序设计思路 STM32利用L298N...电机驱动模块控制前后两路直流电机 motor.c #include "motor.h" //导入led头文件 #include "stm32f10x.h" //导入STM32官方库 #include "
1、内核编程不能访问C库 2、内核编程时必须使用GNU C 3、内核编程时缺乏像用户空间那样的内存保护机制 4、内核编程时浮点数很难使用 5、内核只有一个很小的定长堆栈 6、由于内核支持异步中断,抢占和...SMP,因此必须时刻注意同步和并发 7、要考虑可移植性的重要性 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
大家好,又见面了,我是你们的朋友全栈君。 内核模块 实验目的 内核模块是Linux操作系统中一个比较独特的机制。...通过这一章学习,希望能够理解Linux提出内核模块这个机制的意义;理解并掌握Linux实现内核模块机制的基本技术路线;运用Linux提供的工具和命令,掌握操作内核模块的方法。...由于引入了模块机制,Linux的内核可以达到最小,即内核中实现一些基本功能,如从模块到内核的接口,内核管理所有模块的方式等等,而系统的可扩展性就留给模块来完成。...使用内核模块 3.1 模块的加载 系统调用当然是将内核模块插入到内核的可行方法。但是毕竟太底层了。此外,Linux环境里还有两种方法可达到此目的。...3.3 模块实用程序modutils Linux内核模块机制提供的系统调用大多数都是为modutils程序使用的。可以说,是Linux的内核模块机制和modutils两者的结合提供了模块的编程接口。
基于usb的适配器依赖于libusb-1.0和一些旧的驱动,还要安装usb依赖: ?...2.2.权限授权 sudo:在编译和安装的时候最好带上使用sudo,防止因为管理权限出错; contrib / 60-openocd.rules:在Linux上使用USB设备时,需要将此文件复制到/etc...它下面scripts文件夹存放着openocd使用的文件,在interface文件夹下存放着下载器接口的文件,在target下存放着目标芯片的配置文件: ? 在这里插入图片描述 ? ?...连接到openocd的端口,然后使用命令控制。 这里因为要下载文件,所以我将路径切换到之前创建的bin文件的目录下,然后使用命令telnet localhost 4444连接到openocd: ?...==下一篇==:Linux下开发stm32(三) | 寄存器工程开发
快速去掉不用的linux kernel模块 由于要满足尽量多的客户需求,Xilinx的默认linux kernel的配置,包含了尽可能多的常用模块。实际嵌入式产品中,很多模块用不到。...如果在linux kernel的编译目录,搜索所有目标(.o)文件,就能发现那些模块被编译到linux kernel中。对于不用的模块,可以配置linux kernel,去掉它们。...PetaLinux工程,修改linux kernel的配置后,保存在文件project-spec/meta-user/recipes-kernel/linux/bsp.cfg里。...bsp.cfg linux-xlnx_%.bbappend 如果想快速去掉不用的模块,可以在文件project-spec/meta-user/recipes-kernel/linux/bsp.cfg...里,添加如下内容,去掉不用的无线网络、虚拟化模块等。
STM32的核心Cortex-M3处理器是一个标准化的微控制器结构,希望思考一下,何为标准化?...这些不同STM32型号里内置的Flash最大可达128KB,SRAM最大为20KB,在STM32发布之初,配置更大Flash,RAM和更复杂外设的版本就已经在规划之中了。...乍一看STM32的设备配备,与往日熟悉的51单片机倒有几分相似。...例如,12位精度的ADC具备多种转换模式,并带有一个内部温度传感器,带有双ADC的STM32器件,还可以使两个ADC同时工作,从而衍生出了更为高级的9种转换模式;STM32的每一个定时器都具备4个捕获比较单元...我们前面说过了,STM32是低功耗,高性能的微控制器。在低功耗方面,STM32表现也是不错的。
领取专属 10元无门槛券
手把手带您无忧上云