![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ARM
文章平均质量分 66
xiaotaiyangzuishuai
这个作者很懒,什么都没留下…
展开
-
2021-06-15
树莓派 nanopi等比较1.树莓派 树莓派推出最早,生态最完善,但是硬件不开源,尤其是CPU资料大客户签协议才能拿到。不适合作为嵌入式驱动开发来使用,做应用开发是没问题的。2.nanopi香蕉派和nano pi由于使用全志的CPU,属于硬件开源的,但是生态系统不如树莓派完善。比较适合学习驱动开发已经内核开发,或者BootLoader开发等等Nanopi是友善之臂推出的类似于树莓派的嵌入式开发板。使用的是全志的cpu。3.香蕉派...原创 2021-06-15 16:10:58 · 145 阅读 · 0 评论 -
2021-04-12
linux驱动基础系列--linux spi驱动框架分析(续)前言 这篇文章是对linux驱动基础系列--linux spi驱动框架分析的补充,主要是添加了最新的linux内核里设备树相关内容。spi设备树相关信息 如之前的文章里所述,控制器的device和spi device都是通过platform_add_device和spi_register_board_info注册到内核的驱动模式中的。而最新的方式是通过设备树来实现的。以arm为例,设备树文件一般存放在arch/arm/boot转载 2021-04-12 16:10:01 · 73 阅读 · 0 评论 -
2021-04-12
linux驱动基础系列--linux spi驱动框架分析前言 主要是想对Linux 下spi驱动框架有一个整体的把控,因此会忽略某些细节,同时里面涉及到的一些驱动基础,比如平台驱动、设备模型等也不进行详细说明原理。如果有任何错误地方,请指出,谢谢!spi介绍 SPI接口是Motorola 首先提出的全双工三线同步串行外围接口,采用主从模式(Master Slave)架构。支持多slave模式应用,一般仅支持单Master。时钟由Master控制,在时钟移位脉冲下,数据按位传输,高位在前,转载 2021-04-12 16:08:58 · 98 阅读 · 0 评论 -
ioctl I2C_SMBUS 实现smbus 用户态测试程序
本测试程序通过ioctl(fd, I2C_SMBUS, &ioctl_data)访问smbus。#include#include#include#include#include#include#include#define I2C_DEV"/dev/i2c-0"#define I2C_24CXX_ADDR0x50 /* 0x58 for 0x2...转载 2019-05-29 19:27:14 · 3778 阅读 · 2 评论 -
Avalon_MM DMA Interface for PCIe使用详解
在所从事的项目中需要用到PCIE和DMA,经过再三研究,反复查看相关资料,终于弄懂了**alon_MM DMA Interface for PCIe的使用方法。 PCIE在fpga和上位机之间起着中间桥梁的作用,具有双向传输数据的功能。以下是**alon_MM DMA Interface for PCIe结构图,后面再分别详细介绍。 该ip可以使用Internal Descr...转载 2019-05-22 11:53:42 · 1316 阅读 · 0 评论 -
使用arm-none-linux-gnueabi-gcc –o hello hello.c编译完成,在ARM上运行出现报错:
问题:使用arm-none-linux-gnueabi-gcc –o hello hello.c编译完成,在ARM上运行出现报错:-sh: ./hello: No such file or directory原因:因为我们的程序使用的是动态链接方式编译的,而ARM上的链接库文件路径不同,导致找不到文件,可以用gcc -static命令改用静态链接的方式编译:arm-none-l...转载 2018-08-14 21:57:51 · 3609 阅读 · 0 评论 -
ARM7 串口波特率的设置
UARTn除数锁存是波特率发生器的一部分,它保存了用于产生波特率时钟的APB时钟(PCLK)分频值,波特率时钟必须是目标波特率的16倍。UnDLL和UnDLM寄存器一起构成一个16位除数。其中,UnDLL包含的是除数的低8位,UnDLM包含的是除数的高8位。0x0000被看作是0x0001,因为除数是不允许为0的。在访问UARTn除数锁存寄存器时,除数锁存访问位(DLAB)必须为1。 UARTn...原创 2018-02-08 14:40:58 · 2047 阅读 · 0 评论 -
关于CAN报文中ACK应答错误的检测原理
CAN协议里对ACK(应答场)有如下的描述:应答场长度为2个位,包含应答间隙(ACK SLOT)和应答界定符(ACK DELIMITER)。在应答场里,发送站发送两个“隐性”位。当接收器正确地接收到有效的报文,接收器就会在应答间隙(ACK SLOT)期间(发送ACK信号)向发送器发送一“显性”的位以示应答。应答间隙:所有接收到匹配CRC序列(CRC SEQUENCE)的站会在应答间转载 2018-02-02 11:40:50 · 21633 阅读 · 4 评论 -
ARM7-ADC转换
**文件名称:ADC.C**功能:对输入的模拟信号进行10位AD转换,送高8位转换结果到串口打印。转动电位器R31可以看见结果随着输入电压的变化发生变化。**说明:将JP9短接。电位器逆时针转分压变小,AD值也变小,直到0X00;顺时针转分压变大,AD值变大,直到0XFF.*******************************************转载 2018-02-02 11:33:51 · 356 阅读 · 0 评论 -
ARM处理器和架构
CISC RISC ARM MIPS区别与联系当今处理器一共有三个最强大的架构,其中之一是以intel和AMD为代表的x86架构(CISC),另外一个是手机、平板处理器所使用的ARM架构(RISC),最后一个便是我国龙芯处理器所选择的MIPS架构(RISC)。CISC是复杂指令集原创 2017-10-17 09:56:09 · 1140 阅读 · 0 评论 -
基于ARM7的usb的实现
基于ATMELARM7处理器的USB协议实现0 引言 USB接口现在几乎成为每一个电子设备的必备接口。本文介绍如何在基于AT91SAM7SE的设备上实现USB协议,使之具有USB传输功能。AT91SAM7SE是ATMEL公司生产的基于ARM7内核的ARM处理器系列,包括AT91SAM7SE512、AT91SAM7SE256、AT91SAM7SE32三种型号,高性能32位RISC结构设原创 2017-09-21 09:07:06 · 2066 阅读 · 0 评论 -
UART总结
UART的 设置和使用通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器。将资料由串行通信与并行通信间作传输转换,作为并行输入成为串行输出的芯片,通常集成于其他通讯接口的连结上。其原理就是,串并转换和并串转换。基本结构:部分代码代码展示:INT32U UAR原创 2017-09-18 16:58:08 · 3230 阅读 · 0 评论 -
CAN波特率配置
波特率和比特率的概念和区别:波特率指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数,(BaudRate) 模拟线路信号的速率,也称调制速率,以波形每秒的振荡数来衡量。如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位,1个停止位,8个数据位),这时的波特率为240Bd,比特率为10位*240个/秒=2400bps。波特率,可以通俗的理解为一个设备在一秒钟内原创 2017-09-15 17:32:10 · 10627 阅读 · 1 评论 -
定时器的使用
定时器/计数器用来计数外设时钟(PCLK)或外部时钟的周期,可以选择在规定的时间处产生中断或执行其他操作,由4个匹配寄存器的值决定。它也包含4个捕获输入,用来在输入信号变化时捕捉定时器的瞬时值,也可以选择产生中断。void Timer0Init(void){ T0TC = 0;原创 2017-09-15 15:28:42 · 475 阅读 · 0 评论 -
PLL总结——设置时钟频率
PLL设置序列要使PLL初始化运行,那么必须按步骤完成下面的序列: 1. 如果PLL已被连接,则用一个馈送序列断开与PLL的连接。2. 用一个馈送序列禁止PLL。3. 如果需要,在没有PLL的情况下改变CPU时钟分频器设置来加速操作。4. 写时钟源选择控制寄存器来改变时钟源。5. 写PLLCFG并用一个馈送序列使其有效。PLLCFG仅可在PLL被禁止时更新。6. 用一个原创 2017-09-15 15:01:12 · 18982 阅读 · 0 评论