首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【BSP视频教程】STM32H7视频教程第10期:STM32H7的GPIO专题,非阻塞式驱动编程思想,按键FIFO,蜂鸣器驱动的新式玩法(2022-03-23)

    本期视频我们把这种实现思路做的说明,然后讲解下我们的驱动代码实现。 下次的GPIO应用实战视频中,移植到全新的器件上进行说明,使用杜邦线洞洞板搭建的,不使用我们自己的开发板,做实际的驱动移植魔改实战。 视频(1080p): https://www.bilibili.com/video/BV1y3411p7NN 本期视频主要分为如下几个部分: 第1部分: 1、硬件设计部分。 (1)按键硬件设计。 (2)无源蜂鸣器硬件设计。 2、阻塞式和非阻塞式编程思想。 (1)阻塞式设计效果,代码举例测试。 (2)外部中断式设计效果,代码举例测试。 (3)非阻塞式设计。 3、按键FIFO实现。 (1)FIFO设计思路,看教程文档。 (2)测试按键效果,感性认识下。 (3)调试状态FIFO变化,调试看FIFO (4)代码说明 4、蜂鸣器驱动新式实现。

    01

    迄今最强综合Demo,H7-TOOL的RTX5全家桶版本整体设计框架

    说明: 1、为了搭建这个框架,的确是耗费了太多精力,最早是打算制作手持版,USB版和以太网版,三个版本,并且还要写上位机软件,但是发现工作量太大了。之后就改变了策略,开始朝着通吃版研究,即一个APP固件实现所有方式,当前已经做到物联网网关,手持版,USB版和以太网版四合一,并且不再需要设计上位机,直接远程访问即可。 2、贯穿这个全家桶方案的关键是emWin的多屏展示,网络协议栈的多网口实现和CMSIS-Driver。 (1)通过多屏方案实现了手持,USB和网络都可以访问界面。 (2)通过网络协议栈的多网口方式实现了USB和网路都可以访问,无需再单独配套一个应用。 (3)CMSIS-Driver在这次设计中起到了承上启下的作用。 3、几乎每个组件的添加都是一部血泪史,以emWin为例,为了验证最高性能版,为H7-TOOL的240*240分辨率的SPI接口IPS屏制作了六种方案进行性能测试,工作量是何其大。 类似V5和V4的通用移植方案。 (1)硬件SPI方案 (2)软件SPI方案 类似V6的Lin驱动移植方案。 (1)硬件SPI方案 (2)软件SPI方案 (3)SPI DMA方案,需要更新的时候调用更新,整个屏幕刷新,一次18ms (4)SPI DMA方案,不间断实时刷新,类似ADC DMA,一直在传输,每秒55帧的速度 其实工作量更大的还在后面,像网络和USB的调试就更加繁琐了,特别测试多网口供时,坑太多了。 4、RTX5全家桶方案作为H7-TOOL的番外篇,与我们当前已经发布APP固件并不冲突。 5、现在已经开始添加各种应用代码,争取早日发布,并且会制作教程文档。

    01

    Linux设备树语法详解

    Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离。在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写。引入了设备树之后,驱动代码只负责处理驱动的逻辑,而关于设备的具体信息存放到设备树文件中,这样,如果只是硬件接口信息的变化而没有驱动逻辑的变化,驱动开发者只需要修改设备树文件信息,不需要改写驱动代码。比如在ARM Linux内,一个.dts(device tree source)文件对应一个ARM的machine,一般放置在内核的"arch/arm/boot/dts/"目录内,比如exynos4412参考板的板级设备树文件就是"arch/arm/boot/dts/exynos4412-origen.dts"。这个文件可以通过$make dtbs命令编译成二进制的.dtb文件供内核驱动使用。

    07

    Linux 之父如何定义 Linux?

    来源:马哥教育链接:https://mp.weixin.qq.com/s/wwBt5H68tHmf_lHXrd_eSQ本文是 Linus 写于 1991年10月10日LINUX是什么?LINUX是一个免费类unix内核,适用于386-AT计算机,附带完整源代码。主要让黑客、计算机科学学生使用,学习和享受。它大部分用C编写,但是一小部分是用gnu格式汇编,而且引导序列用的是因特尔086汇编语言。C代码是相对ANSI的,使用一些GNU增强特性(大多为 __asm__ 和 inline)。然而有很多可用于386电脑的unices,他们大部分要花很多钱,而且不附带源码。因此他们是使用计算机的理想选择,但是如果你想了解他们如何工作,那是不可能的。也有一些 Unix 是附带源码的。Minix,Andrew S. Tanenbaum编写的学习工具,已经在大学中作为教学工具使用了很多年了。BSD-386系统是附带源码的,但是有版权限制,而且要花很多钱(我记得起始价格为$995)。GNU内核(Hurd)将会是免费的,但是现在还没有准备好,而且对于了解和学习它们来说有点庞大。LINUX与Minix是最相似的,由于它很小而且不是非常复杂,因此易于理解(嗯…)。LINUX是基于Minix编写的,因此有相当多的相同点,任何Minix黑客在使用LINUX的时候都感觉非常熟悉。不过,没有在项目中使用Minix代码,因此Minix版权没有限制到这个新系统。它也是完全免费的,而且它的版权非常宽松。因此不像使用Minix,它不需要几兆字节大小的区别。LINUX版权虽然是免费的发布版,我还是从以下几个方面限制了LINUX的使用:你可以自由复制和重新发布源码和二进制,只要是:1. 完全开源。因此不能单独发布二进制,即使你只修改了一点。2. 你不能从发布版获取利益。事实上甚至“装卸费用”都是不被接受的。3. 你要保持完整的适当版权。· 根据需要你可能会修改源码,但是如果你发布了新系统的一部分(或者只有二进制),必须将新的代码包含进去。· 除了不包含版权的代码之外,你可能会做一些小的修改。这由你来定,但是如果能将相关内容或者代码告诉我,将不胜感激。对任何使用或者扩展系统的人来说,这应该足够宽松而不会引起任何担忧。如果你有朋友真的不想要源码,只想要一个能运行的二进制,你当然可以给他而不用担心我会起诉你。不过最好只在朋友之间这么做。LINUX运行所需的硬件/软件LINUX是在一个运行Minix的386-AT上开发的。由于LINUX是一个真正的操作系统,而且需要直接与硬件交互来做一些事情,你必须有一个非常相似的系统来让他顺利运行:· 386-AT(PS/2之类是不同的,不能正常运行)· VGA或者EGA屏幕硬件。· 标准AT硬盘接口,IDE盘可以运行(实际上我用的就是这个)。· 正常实模式BIOS。一些机器看起来是用虚-86模式运行启动程序,而且在这样的机器LINUX不会启动和正常运行。LINUX会发展成为一个自给自足的系统,现在需要Minix-386才能正常运行。你需要Minix让初始化启动文件系统,和编译OS二进制。在那之后LINUX是一个自给自足的系统,但是为了做文件系统检查(fsck)和修改之后重编译系统,推荐使用Minix。获取LINUXLINUX现在可以使用匿名ftp从‘nic.funet.fi’的‘/pub/OS/Linux’目录获取。这个目录包含操作系统的所有源码,还有一些二进制文件,因此你可以真正使用系统了。注意!二进制大多是GNU软件,而且版权比LINUX的严格(GNU非盈利性版权)。因此你不能在不发布他们源码的情况下重新发布他们,可以在/pub/GNU中找到。关于GNU非盈利性版权,从任何GNU软件包了解更多。此目录中各类文件如下:· linux-0.03.tar.Z–系统的完全源码,16位tar压缩文件格式。· Linux.tex–这个文件的LATEX源码。· bash.Z–在LINUX下运行的bash二进制文件。这个二进制文件应该放到预留给LINUX文件系统中的/bin/sh下(参见installation)。· update.Z–更新二进制文件,要放到/bin/update。· gccbin.tar.Z–GNU cc二进制文件需要由一个可运行的编译器。这个tar压缩包含有编译器,加载器,汇编程序和支持程序(nm,strip等)。它还包含一个小型的库,可用于大部分程序。· include.tar.Z–让gcc运行的必要include文件。· unistd.tar.Z–unistd库程序的源码(即系统调用接口)。通过这个你可以使用系统独立库源码编译一个大一些的库。· utilbin.tar.Z–各种GNU工具的二进制文件,包括GNU的fileutils,make和tar。也包含克隆emacs的uemacs。· README, RELNOTES-

    02
    领券