spi

LoRa芯片SX1278官方驱动移植

北战南征 提交于 2020-05-02 16:03:56
1.首先找一个空白的工程模板,在工程里面建立两个文件夹(组)radio和platform,向platform中添加,fifo.c, led.c, sx1276-Hal.c, sx12xxEiger.c;向radio中添加radio.c, sx1276-Fsk.c, sx1276-FskMisc.c, sx1276-LoRa.c, sx1276-LoRaMisc.c, sx1276.c; 并在工程中添加其对应的头文件路径。编译整个工程,出现错误。 2.第一处修改,在 开发软件 中添加宏定义PLATFORM=SX12xxEiger,此宏定义在platform.h文件的开头调用,用于条件编译。 3.找不到头文件stm32f10x.h。这里我们在sx12xxEiger.h和fifo.h中的开始部分修改宏定义,两处一样,如图1所示。因为我用的是103平台,所以根据需求修改。 图1 修包含改头文件 3.注释部分用不到的代码,根据平台修改,入门级学习,此处直接注释。将sx12xxEiger.c中的下面代码注释。 //#if( defined( STM32F4XX ) || defined( STM32F2XX ) || defined( STM32F429_439xx ) ) // //#include "usbd_cdc_core.h" //#include "usbd_usr.h" //

Dubbo 系列(07-5)集群容错

北城以北 提交于 2020-05-02 14:34:06
Dubbo 系列(07-5)集群容错 - Mock [toc] Spring Cloud Alibaba 系列目录 - Dubbo 篇 1. 背景介绍 相关文档推荐: Dubbo 实战 - 服务降级 Dubbo 实战 - 本地伪装 Dubbo 实战 - 本地存根 Dubbo 的集群容错中默认会组装 MockClusterWrapper,它实现了 Dubbo 的服务降级和本地伪装。 1.1 服务降级 服务降级配置方式,更多参考官网 Dubbo 实战 - 服务降级 <dubbo:reference interface="com.foo.BarService" mock="force:return+null"/> 或向注册中心写入动态配置覆盖规则: "override://0.0.0.0/com.foo.BarService?category=configurators&dynamic=false&application=foo&mock=force:return+null" mock=force:return+null 表示消费方对该服务的方法调用都直接返回 null 值,不发起远程调用。用来屏蔽不重要服务不可用时对调用方的影响。 mock=fail:return+null 表示消费方对该服务的方法调用在失败后,再返回 null 值,不抛异常。用来容忍不重要服务不稳定时对调用方的影响。

RT_THREAD线程的同步和通讯

↘锁芯ラ 提交于 2020-05-02 14:15:41
一 线程同步:信号量,互斥量,事件集 信号量:(任何线程都可释放,已经不存在实例,线程递归持有会发生主动挂起(最终形成死锁),优先级反转) 生成者(线程1)-共享数据(临界区)-消费者(线程2)模型中对共享数据的操作;对SPI总线的占有操作要互斥;对临界区的保护rt_hw_interrupt_disable/enable();rt_enter/exit_critical()。    信号量的等待方式:RT_IPC_FLAG_FIFO/PRIO; 信号量的值:还有多少个资源可用( 资源计数 : 停车场的空余可用车位数/生成消费模型中的信号量的初始化值=max;开始申请不能运行的初始化值 一般为0(相当于工作完成标志flag);锁( 二值信号量 ,初始可用则设为1(成功申请后减一;释放后加1); 中断与线程同步 (初始为0,中断中释放信号量加1), 而中断与线程之间的 互斥不能用锁 )。获取信号量只要大于0即可以得到资源(等待方式:直接返回(rt_sem_trytake()),挂起,超时等待,死等)。 互斥量 (信号量的一种, 锁形式存在(互斥锁) 。只有占有者释放,支持递归访问且能因采用优先级继承算法 防止线程优先级翻转 的场合 ):状态:申请获得后闭锁,释放后开锁(减一,为0可用) 事件集(一对多,多对多):进行与(关联型事件)或(独立型事件,不可累计):   32bit

【安富莱】V6,V5开发板用户手册,重在BSP驱动包设计方法,HAL库的框架学习,授人以渔(2020-04-06)

て烟熏妆下的殇ゞ 提交于 2020-05-01 07:17:23
说明: 1、本教程重在BSP驱动包设计方法和HAL库的框架学习,并将HAL库里面的各种弯弯绕捋顺,从而方便我们的程序设计。 2、本次工程延续以往的代码风格,从底层BSP驱动包到应用代码,变量命名,文件命名,程序框架,注释等都比较规范,大家阅读或者移植都会比较方便。 另外,阅读代码时,务必将编辑器的缩进参数和TAB设置为4来阅读本文件,否则显示不整齐。 3、本教程每周会继续更新1-2章,之后将开启配套的视频教程制作,加大对初学者的支持力度。 4、V5,V6,V7将通过这次升级,达到底层驱动和应用层的完全统一。 5、由于能力有限,教程中有认识不到位或者错误的地方,欢迎大家批评指正,每周都会更新。 注意事项: 1、配套例子保持MDK5和IAR8两个版本,后面将选做Embedded Studio的GCC版(等CubeIDE成熟后,也开始配套些例子)。 类似Event Recoder这种仅支持MDK的,就不配套其它IDE了。 2、MDK请使用MDK5.26及其以上版本,IAR8请使用IAR8.3及其以上版本。 3、下载器可以使用JLNK,ULINK,STLINK,CMSIS-DAP等,如果是JLINK,请使用V9或者V10。 4、关于V5,V6开发板裸机程序的模板框架说明: (1)硬件异常分析是用的SEGGER的方案,MDK和IAR都已经配套,教程里面也给了使用说明。 (2

Mysql8.0使用JDBC连接数据库错误总结

a 夏天 提交于 2020-05-01 06:05:07
如果使用了mysql8.0以上的版本 异常信息: 你如果用的包是以前的包的话,会提示使用caching_sha2_password 或者是 Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary 解决方法 mysql已经推出了新的mysql-connector-java包,引入后,驱动使用com.mysql.cj.jdbc.driver 原本的驱动器是 Class.forName("com.mysql.jdbc.Driver"); 我们要将驱动改成 Class.forName("com.mysql.cj.jdbc.Driver"); static final String DB_URL = "jdbc:mysql://localhost:3306//*这里是数据库名*/?useSSL=false&serverTimezone=UTC"; 在改完之后要确定你的包是最新版本的 异常信息 : CST

Vivado ILA观察信号和调试过程

时光总嘲笑我的痴心妄想 提交于 2020-04-29 23:22:56
先简单介绍一下ILA(Integrated Logic Analyzer)生成方法。这里有 两种办法 完成Debug Core的配置和实现。 方法一、mark_debug综合选项+Set Up Debug设定ILA参数。 1、在信号(reg或者wire)声明处加mark_debug选项,方法如下: // spi_mosi信号标记为需要ILA观测的信号 (* MARK_DEBUG = “TRUE” *) wire spi_mosi; mark_debug用法的详细说明请看Xilinx文档UG901_Synthesis 2、综合,进行 Run Synthesis 3、Open Synthesized Design,打开Set Up Debug,如图: 4、为ILA Debug Core添加需要观测的信号,结果如图: 每一个信号都要指定一个采样时钟域(Clock Domain)。 关于添加方法,还可以在Netlist窗口拖动信号到这个列表内。 注意到Netlist中有些信号名称前面有了绿色的小蜘蛛(小星星) ,正是Verilog程序中进行mark_debug的信号: 5、在Set Up Debug中设定信号采样收集的深度(Sample of data depth),输入流水级别数(Input pipe stages),Capture control和Advanced trigger选项。

[Xilinx笔记] 《FPGA伴你玩转USB3.0与LVDS》 读书笔记

风流意气都作罢 提交于 2020-04-29 20:58:09
2019年10月15日09:31:10 第一部分·哪些要看(优先级由高到低) 0、8.1 LVDS 数据收发实例 8.2 带 CRC 校验的 LVDS 数据收发实例 1、3.6 USB3.0 控制器 FX3 的 SDK 安装 ” 3.7 USB3.0 控制器 FX3 的驱动安装 5.4 UART 的 loopback 实例 2、7.1 基于 FX3 内部 DMA 的 USB 传输 Loopback 实例 7.2 FX3 的 SPI FLASH 代码固化 7.3 7.2 FX3 的 SPI FLASH 代码固化 7.4 基于FX3的UVC(USB video class)传输协议实例 (用了FPGA) 7.5 基于 FPGA-FX3 SlaveFIFO 接口的 loopback 实例 (用了FPGA) 7.6 基于 FPGA-FX3 SlaveFIFO 接口的 loopback 实例 (用了FPGA) 7.7 基于 FPGA-FX3 SlaveFIFO 接口的 StreamOUT 实例 (用了FPGA) 7.8 3、6.1 DD R3 IP核配置与仿真”, 4、3.4节 Vivado 中使用 notepad++ 的关联设置 第二部分·笔记 1、报告里,写明有哪些实现方式,各自指标、大概实现难度、实现所花时间等; 来源: oschina 链接: https://my.oschina

基于TI KeyStone C66x系列多核架构定点/浮点TMS320C6678设计的高端DSP评估板

馋奶兔 提交于 2020-04-28 21:22:11
评估板简介 创龙 TL6678-EasyEVM是一款基于TI KeySton e C66x系列多核架构定点/浮点TMS320 C66 78设计的高端DSP评估板,由核心板 与底板组成 。 核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境 。 评估板接口资源丰富 , 引出SRIO 、PCI e 、千兆网口 等 高速通信 接口, 快速进行产品 方案评估 与 技术预研。 典型 应 用领域 软件无线电 雷达探测 光电探测 视频追踪 图像处理 电子对抗 水下探测 定位导航 软硬件参数 硬件框图 硬件参数 表 1 CPU TI TMS320C6678,8核C66x,主频1 /1.25 GHz ROM 128MByte NAND FLASH 16M Byte SPI NOR FLASH RAM 1/2G Byte DDR 3 EEPROM 1Mbit ECC 256/512M Byte DDR3 SENSOR 1x TMP102AIDRLT ,核心板温度传感器,I2C接口 B2B Connector 2x 50pin公 座 B2B,2x 50pin母 座 B2B,间距0. 8 mm, 合高5.0mm; 1x 80pin高速B2B连接器,间距0.5mm,合高5.0mm,共280pin,信号速率最高可达10GBaud LED 2 x供电指示灯( 核心板1个

基于Xilinx Zynq-7000系列XC7Z035/XC7Z045/XC7Z100高性能SoC处理器设计的高端核心板

冷暖自知 提交于 2020-04-28 16:12:55
核心 板简介 创龙S OM-TLZ7xH 是一款基于 Xilinx Zynq-7000系列 XC7Z0 35 / XC7Z0 45 / XC7Z100 高性能 SoC 处理器 设计的高端核心板,处理器集成PS端双核ARM Cortex-A9 + PL端 Kintex -7架构2 8nm 可编程逻辑资源。处理器信号引脚 通过 工业级高速B2B连接器引出 , 可 通过PS 端配置及 烧写PL 端程序,且 PS 端和 PL端 可以独立开发。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境 。 使用核心板进行 二次开发 时,仅需 专注上层运用, 降 低了开发难度和时间成本, 可快速进行 产品方案评估与技术预研。 典型 应 用领域 软件无线电 雷达探测 光电探测 视频追踪 图像处理 电子对抗 水下探测 定位导航 深度学习 软硬件 参数 硬件框图 硬件参数 表 1 CPU Xilinx Zynq -7000 XC7Z0 35 / XC7Z0 45 / XC7Z100-2FFG900I ,ARM主频 800MHz , 2.5DMIPS/MHz per CPU RAM PS: 单 通道32bit DDR总线 , 1GByte PL: 单 通道32bit DDR总线 , 1/2GByte可选 ROM 256Mbit QSPI NOR FLASH eMMC 8

Dubbo源码分析(一)Dubbo的扩展点机制

孤街浪徒 提交于 2020-04-28 12:56:05
写在前面的话 自己用Dubbo也有几年时间,一直没有读过Dubbo的源码,现在来读一读Dubbo的源码,分析一下Dubbo的几个核心,并写一个Dubbo的源码专题来记录一下学习过程,供大家参考,写的不好的地方,欢迎拍砖 专题分为以下几个部分: Dubbo源码分析(一)Dubbo的扩展点机制 Dubbo源码分析(二)Dubbo服务发布Export Dubbo源码分析(三)Dubbo的服务引用Refer Dubbo源码分析(四)Dubbo调用链-消费端(集群容错机制) Dubbo源码分析(五)Dubbo调用链-服务端 Dubbo源码分析(六)Dubbo通信的编码解码机制 Dubbo框架的设计细节 (未完,待续) PS:读源码前先掌握以下基础 JDK的SPI Java多线程/线程池基础 Javasissit基础(动态编译) Netty基础 Zookeeper基础,zkClient客户端API 工厂模式,装饰模式,模板模式,单例模式,动态代理模式 Spring的schema自定义扩展 序列化 PS:读源码前的建议 代码量很大,各个地方都有关联,慢慢读,不要着急,一遍不行就两遍,两遍不行就三遍,总有看懂的时候 带着问题去看,先想想这段代码的目的是什么,解决了什么问题 沿着一条主线读,不影响流程走向的代码可以略过 Dubbo的扩展点 为什么先读扩展点 之所以选择先从Dubbo的扩展点机制入手