嵌入式
文章平均质量分 93
小宝是狗子啊
这个作者很懒,什么都没留下…
展开
-
ARM处理器之Cache与MMU
一、Cache简述对于ARM芯片中包含这指令Cache和数据Cache以及MMU,这些MMU和Cache是通过协处理器(coprocessor)CP15来操作的,协助主处理器,在ARM9系统里面有CP0到CP15总共16个协处理器下面有一段程序,假设sum为地址A,i为地址B,根据反汇编我们可以发现会不断地读写地址A和B,不断地执行for循环中的代码,取指令和执行指令,在JZ2440中SDRAM非常慢,怎么提高程序执行效率#include <stdio.h>int sum(原创 2021-04-22 22:39:36 · 2407 阅读 · 2 评论 -
ARM处理器之中断与异常
一、概念引入与处理流程CPU被中断的方式有指令不对、数据访问有问题、Reset信号等这称为异常,还有中断源:按键、定时器、网路数据等称为中断,中断处于一种异常体系,对于异常,首先需要我们保存现场(也就是保存相关的寄存器),然后调用对应的处理函数,对于中断来说首先还需要分辨中断源再处理对应的处理函数,最后恢复现场总体过程如下,其中标粗的过程是硬件决定的,后面的过程是软件决定的初始化:a.设置中断源,让其可以产生中断;b.设置中断控制器(可屏蔽,可设置优先级);c.设置CPU总开关(使能中断) 执原创 2021-04-17 21:43:37 · 1967 阅读 · 3 评论 -
freetype简介与测试
简要从点阵文件中把字母或者汉字的字模取出来在LCD上显示这个方式有个缺点,这个文字的大小就固定了不能够缩放,我们浏览器就可以放大缩小字体,这些字体就成为矢量字体,比如字母A,在矢量字体文件中存放的是若干条闭合曲线的关键点,显示的时候使用数学曲线描绘并连接关键点,然后填充曲线内部空间,这样来实现缩放字体,关键点之间的相互位置是知晓的,而这种数学曲线就称为贝塞尔曲线,贝塞尔曲线在高等数学中有讲到,但不代表我们需要复习贝塞尔曲线,我们可以通过freetype库来处理这些矢量字体,在网上可以搜索到freetyp原创 2021-04-10 17:40:16 · 8288 阅读 · 2 评论 -
字符编码方式通俗易懂
目录字符编码方式数字的含义Unicode码编码显示相关参考字符的存储gcc之charset字符编码方式分三层理解:数字 代表什么 显示为"什么"数字的含义开始阶段由欧美人发明计算机,他们只使用有限的字母,英文中26个字母,大小写52个跟其他符号,用一个字节来表示,甚至不需要8位,只需要低七位来表示字母,这些字母就是ASCII码,例如0x61表示'a',0x41表示'A'由于时代发展,我们中国人也要用,还有其他国家的,我们常用汉字有6k多个,...原创 2021-04-10 15:27:57 · 662 阅读 · 0 评论 -
Linux2.6之IIC驱动
一、IIC简介1.简单介绍通俗易懂IIC是通信协议中的一种,为一主多从的结构,对于主从,所有的数据都是从主机这边发起,从机只能接受,不能主动引起数据传输,只有两条总线线路:一条串行数据线(SDA),一条串行时钟线(SCL)对于多个IIC设备来说,每个连接到总线的器件都可以使用软件根据它的唯一地址来识别,当我们要使用一个IIC设备时,通过SDA传输地址,并等待IIC设备的回应即ACK信号而SDA上是如何实现双向传输的,在硬件上使用了开极电路,两条总线都有接上拉电阻,因此平时情况下SDA和SCL原创 2021-02-21 21:59:58 · 453 阅读 · 2 评论 -
SPI协议介绍
SPI简介SPI协议是一种同步串行接口技术(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,SPI是一主多从的,SPI通信都是由主机发起的,SPI只需要4根线CS:片选引脚,多个SPI设备都会有一个片选引脚,当引脚拉低后就能选中该芯片 SCK:串行时钟,为SPI通信提供时钟 MOSI/SDO:主设备数据输入,从设备数据输出 MOSI/SDI:主设备数据输出,从设备数据输入数据传输配图例如我们发出0x56的数据即0b0101 01.原创 2021-04-08 16:59:33 · 1950 阅读 · 1 评论 -
IIS接口传输简介
IIS接口IIS为硬件接口,用来传输声音数据,也就是只能够用来传输声音或者接受声音,在硬件上,IIS控制器与音频编解码芯片以IIS接口相连,如下图VM8976G芯片,因此对于声音音量等设置等用L3接口来控制,也可以用IIC接口来控制,IIS和IIC是两个完全不一样的接口,一般连接到CPU的IO控制器,其中CDLCK是系统时钟,由CPU提供给编解码芯片使用播放和录音过程:播放:从内存把数据传给IIS控制器,IIS控制器根据IIS接口传给音频编解码芯片,音频编解码芯片中用DAC把数字信号转换为模原创 2021-04-05 15:45:49 · 5680 阅读 · 0 评论 -
HTTP协议与HTTPS协议
HTTP协议http协议是建立在TCP/IP协议智商应用层协议,默认端口为80,8080。http协议的特点是无状态,无连接。 (不是一个长连接,只是连接的时候得到数据后就断开了)http协议的请求,http协议的报文传输的是SCLL码,tcp也是ASCLL码,在TCP/IP协议之上,主要分为三部分:请求行、请求头和请求体。请求行:GET请求和POST 申请数据传输的两种申请方式第一行:包含三个信息:请求方式,url和http协议版本区别:1、url可见性:get,参数url可见;p原创 2021-01-26 22:30:42 · 232 阅读 · 1 评论 -
Source Insight一般使用步骤
新建工程首先,在开始所需要的查看的代码底下新建一个文件夹,命名随意然后进入文件夹sound后,复制文件路径例如:D:\桌面\树莓派\LDV7语音识别模块-配套程序\修改程序\V0.7 08XE基本识别程序(口令模式–默认出厂)\code\sound打开Source Insight并点击新建将路径复制到下方并点击OK将所有代码文件添加进来,然后close就可以了使用过程出现的问题一般进来没有右侧窗口点击上方View->Panels->Project File List原创 2020-08-22 11:37:05 · 866 阅读 · 0 评论 -
C语言格式符多样输出
5位数输出char str[20];sprintf(str,"%5dHz",2000);printf("str=%s\n",str);str= 2000Hz左对齐输出char str[20];sprintf(str,"%5dHz",2000);printf("str=%s\n",str);str=2000 Hz前面补0输出char str[20];sprintf(str,"%05dHz",2000);printf("str=%s\n",str);str=02000Hz原创 2020-08-25 16:06:37 · 233 阅读 · 0 评论 -
运算放大器计算
运算放大器主要用来放大信号,例如心电信号 音频信号等,输出阻抗性小,因此可以来驱动大负载设计并⽣产⼀种指定增益的放⼤器对于⼚商来说⾮常容易,但是由于不同场合应⽤,需要不同的放⼤倍数,⽐如2倍、3倍…… 那么如何做⼀个通⽤的放⼤器的?厂家不可能为了卖家的需要特定设计多大的放大倍数,所有就有通过负反馈理论,就可以实现任意的放⼤倍数特点运放的开环增益⾮常⼤,即图中Auo⾮常⼤运放的输⼊端没有电流(理想情况,没有损失电流,但实际上三极管对于MOS管来说损失电流多),即运放具有极⾼的输⼊阻抗下原创 2020-08-31 16:15:46 · 12282 阅读 · 0 评论 -
C程序中存储空间如何分配的
低地址正文段:代码段,由CPU执行的机器指令部分初始化的数据:函数外已初始化变量的存储空间未初始化的数据:通常将此段称为bss段,函数外的未初始化变量的存储空间堆:通常在堆中进行动态存储分配栈:自动变量以及每次函数调用时所需保存的信息都放在此段中高地址...原创 2020-08-08 16:24:13 · 411 阅读 · 0 评论 -
S3C2440之代码重定位
一、段的概念重定位引入S3C2440的CPU可以直接给SDRAM发送命令、给Nor Flash发送命令、给4K的片上SRAM发送命令,但是不能直接给Nand Flsh发送命令(有Nand Flash控制器) nor启动时,CPU认为0地址在Nor Flash上;nand启动时,硬件会自动把Nand Flsh前4K复制到SRAM,片内内存SRAM的基地址就变成了0x40000000,Nand启动时片内内存SRAM的基地址基地址是0 对于nor启动,可以像内存一样读,但不能像内存直接写,因此需要把全局变原创 2021-01-30 15:52:45 · 327 阅读 · 0 评论 -
ARM常用汇编指令与C程序机制
ARM-THUMB子程序调用会泽ATPCSARM处理器中有R0-R15共16个寄存器(可以直接访问) 这里以S3C2440为例,其GPIO控制器有GPFCON、GPFDAT寄存器(以地址访问)寄存器别名使用规则r15pc程序计数器r14lr链接寄存器r13sp数据栈指针r12ip子程序内部调用的scratch寄存器r11v8ARM状态局部变量寄存器8r10v7、slARM状态局部变量寄存器7、在支持数据栈检查的ATPCS中原创 2020-12-30 11:37:30 · 682 阅读 · 0 评论 -
嵌入式开发ping问题
PC机使用网卡A连接开发板,VMWare就要使用同一个网卡A作为桥接网卡1.确定网卡A2.VMWare选择网卡A作为桥接网卡3.设置三者IP处于同同网段–a.windows网卡A的IP–b.VMWare里Ubuntu的IP–c.开发板IPu-boot->set ipaddr xxx.xxx.xxx.xxxsavelinux->ifconfig eht0 xxx.xxx.xxx.xxx注意:PC上多网卡A、B…不能设为同一网段...原创 2020-12-29 21:17:00 · 264 阅读 · 0 评论 -
嵌入式软件之应用调试
目录一、strace追踪二、gdb与gdbserver调试2.1 gdb调试2.2core dump三、修改内核打印用户段错误信息四、自制系统调用一、strace追踪使用strace命令来跟踪系统调用,应用程序过程中open、read、write等就涉及到系统调用,strace工具比较简单,可以解决一些常见问题,这里用的是strace-4.5.15版本的编译过程,其中host是运行的宿主机,CC是编译器./configure --host=arm-linux..原创 2021-03-04 21:21:58 · 1139 阅读 · 0 评论 -
嵌入式软件之裸板与驱动调试
一、裸板调试1.1 点灯法通过点亮LED来观察程序走到哪一步,汇编实现对LED点亮死循环led_flicker: // 初始化LED ldr r0, =0x56000050 @ GPFCON ldr r1, =(1<<(4*2)) str r1, [r0] // 循环点亮熄灭LED ldr r0, =0x56000054 @ GPFDAT ldr r1, =0 ldr r2, =(1<<4)loop:原创 2021-03-03 21:00:13 · 1422 阅读 · 0 评论