记录下找bug找到脑壳疼的一天 针对三星公司的S5P6818芯片,尝试写了个流水灯的驱动,驱动程序源码如下: 在运行时缺发现一个奇怪的问题,见下图 编译有没错,百度了好久一直不知道什么原因,找了大半天……很无奈然后重新细致的从头到尾浏览一遍代码才发现…… 原来是在执行退出函数的时候没有释放物理内存,因为我在前面有申请GPIO C组的物理内存区...

用批处理文件、连接文件和makefile文件共同来实现对源码的编译链接 这里直接用一个例子来说明,所使用到的源码可以在我的文章中找到记录学习嵌入式遇到的问题(一)这个例子我只贴出用批处理文件、连接文件和makefile文件的源代码。 这里我新建了一个文件夹: 文件夹中的内容: 源代码: mylink.LNK: maketest.bat: test.mak: 运行批处理文件后执行成功: 上面的例子就...

FPGA(13) 实验综合8 红外遥控 DS18B20简介 数据格式 初始化序列 部分代码 DS18B20简介 一种数字温度传感器,输出数字信号表示温度,体积小,抗干扰能力强,精度高 测量温度范围从负五十五到正一百二十五。精度正负五度,最大转换时间750ms 其命令分为ROM型和RAM型 ROM型指对其内部自带的64位ROM进行操作:包括读取、匹配、跳过、搜索、报警搜索。其内部ROM主要存储,DS...

FPGA(7) 实验综合2 系统分频 BCD码 PLL锁相环 ip核的创建 系统分频 这里系统时钟每计数(clk_divide/2-1)次dri_clk时钟翻转一次 如果十分频就clk_divide定义为十,clk_cnt每加1都经过两次翻转,所以加到五时翻转一次dri_cnt为十分频 减慢时间可能是因为要等所有语句执行完毕 BCD码 拿最常用的8421编码举例 在8421条件下,1111表示的十...

在一个实际工程的创建和管理中,其众多的各种文件常会因各种原因而分别放在不同的文件目录之下。总而言之,为了清楚有序,开发人员应该为工程设置多个文件目录来存储源代码、编译过程中产生的中间文件及第三方的文件等。设计者应该充分的利用批处理文件和makefile文件的强大功能,负责建立起不同的文件目录,来使整个工程规范有序,来减少不必要的错误。 下面用一个例子来说明批处理文件和 makefile文件在工程管...

写在前面 该文主要是学习了张凯龙老师的《嵌入式系统体系、原理与设计》后自己写的课后习题,由于个人水平有限,存在纰漏之处请多多批评指正。 第一章 概述 P19 随着电子器件技术的不断发展和演化,基于半导体材料的晶体管技术、集成电路技术出现,计算机硬件的体积、功耗降低,处理速度提升才能使专用的微型计算装置“嵌入”到应用对象中;C语言等软件语言的出现支持系统功能复杂化;网络通信技...

STM32F407独立ADC+DMA+单通道之寄存器版本 使用寄存器写代码,可以很好地理解STM32F407的底层。本文章使用ADC1单通道采集,配置通道5,采样后的数据通过DMA传输到串口打印出来。 由于是寄存器的版本,里面提到的寄存器请配合《STM32F4xx 中文参考手册》ADC 章节一起阅读,效果会更佳。本文章不多做介绍! ADC简介 STM32F407ZGT6 有3 个ADC,每个ADC...

先看头文件 这个就很标准的写法。 这些地址的值查stm32中文手册即可 这个就是初始地址。 偏移量就是在刚才上边的基地址上加偏移量就是现在的地址。4个字节一般是。因为32位除以8等于4,就是4个字节。每次传输数据都是4字节。具体寄存器是多少手册里找到对应的位写就行。 手册里第六章是rcc寄存器,第八章是gpio,一眼就能找到。 思路是这样的。 STM32使用的时候先设置时钟。在下一章里会详细设置。...

array[-1]为什么会动作 概述 回想起内存空间的样子 当你想到指针时,你会看到一个数组 数组和指针的区分使用 结束语 概述 编写程序时,没有比数组更容易使用的了。因此,不知什么时候,“数组”这个抽象的概念在脑海中形成了,你有没有想过什么特别的东西呢? 在此,我们将探讨C语言中的数组实体。 回想起内存空间的样子 使用数组时需要注意的是,例如, int array[10]...

时间控制问题即同步和异步调用 概述 同步调用 异步调用 结束语 概述 在嵌入式软件中实现目标功能时,需要的是与时间相关的控制。而且,在很好地设计与时间相关的问题时,有用的是“非同步调用”这一技术。 实际上,在设计笨拙的情况下,不需要这种技术。希望各位读者一定要掌握优秀的设计技术,在此进行说明。 在嵌入式系统中,(从计算机上看)有很多根据外部世界的状态和状态的变化来决定下一个...

目录 一、串口编程中struct termios结构体 二、使用串口流程 1、打开串口 2、串口配置流程 a、tcgetattr() 与 tcsetattr()控制终端 b、cfsetispeed() 与 cfsetospeed()设置波特率 c、使用掩码设置数据位 d、使用c_cflag和c_iflag设置奇偶校验 e、设置停止位 f、设置最少字符和等待时间 3、读写数据 4、关闭串口 &ems...

Linux驱动开发前阶段总结 硬件配置说明 大致流程说明 uboot Linux kernel 文件系统 主要遇到的问题 内核输出乱码 ping问题 在Ubuntu上编译的hello程序无法在板子上运行 个人感受 硬件配置说明 大致流程说明 uboot Linux kernel 文件系统 主要遇到的问题 内核输出乱码 ping问题 在Ubuntu上编译的hello程序无法在板子上运行 个人感受...

OPenCV的概念详解及入门 文章目录 OPenCV的概念详解及入门 摘要 一、OpenCV的概念和结构 二、一些常用的函数 显示图像 三、小试牛刀-------对一张图片进行变换 摘要 ​ 不知在哪里看到OPenCV和嵌入式也是相关的,心中一直是这样想的,只要和嵌入式相关,都想了解一些,哪怕只是一点基础的概念。抱着这样的想法是可以学到不少知识的。 一、OpenCV的概念和结构 OpenCV:开源...