- 博客(30)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 I2S设备开发和调试
数字音频通信有I2S、PCM、AC97等。嵌入式音频领域通常使用I2S总线通信。I2S的全称是 Inter-IC Sound,中文翻译为“电路里的声音”。为了尽量不占用CPU资源,经常搭配DMA搬运数据。本文介绍I2S的开发和调试的经验,使用正点原子的开发板,STM32H750作为系统主控,ES8388为音频编解码芯片。
2025-03-10 14:08:28
1161
原创 基于ZYNQ PS-SPI的Flash驱动开发
本文使用PS-SPI实现Flash读写,PS-SPI的基础资料参考Xilinx UG1085的文档说明,其基础使用方法是,配置SPI模式,控制TXFIFO/RXFIFO,ZYNQ的IP自动完成发送TXFIFO数据,接收数据到RXFIFO,FIFO深度为128Byte。本文介绍了使用PS-SPI的Flash开发。
2024-03-05 13:39:08
2391
4
原创 64位指针赋值遇到的问题
问题:mmap成功返回一个地址,地址g_mmap_addr赋值给整数变量temp。 unsigned int temp; unsigned int phy_addr = 0xA0000000; void *g_mmap_addr; g_fd = open("/dev/mem", O_RDWR | O_SYNC); if (g_fd < 0) { debug("open fail,abort\n"); abort(); } debug("open mem
2022-05-06 19:53:50
721
1
原创 python程序画吉他和弦
和弦是指有一定音程关系的一组声音,例如1、3、5组成C和弦,我入门学的第一个和弦。可以使用python的matplotlib库来绘制和弦图,matplotlib一般是用来分析数据用的。和弦图像一个4行5列的网格,表示琴弦的位置和品柱位置。图:4行5列的网格环境:Window10 + Python 3.10.1import matplotlib.pyplot as pltdef draw_block(): plt.cla() plt.clf() ..
2022-04-26 21:50:28
2697
原创 设备树(DeviceTree)数组使用
Linux驱动内需要设备数组数据,又不想在驱动文件添加,这样会使代码显得过于臃肿。可以在设备树(devicetree)使用"[01 02 03 04]"或者<01 02 03 04>的方式定义,这种方式和我们在C语言内定义数组颇为相似。
2022-04-22 18:02:51
1320
原创 unity面向角度和运动
实现一只斑马面向一个颗球,球左右摇摆。创建一只斑马,加上下面的脚本,创建一颗红色球。using System.Collections;using System.Collections.Generic;using UnityEngine;public class NewBehaviourScript : MonoBehaviour{ Quaternion targetRotation; float fLastTime; GameObject TargetObje
2020-11-07 13:19:40
718
原创 C++ 内存泄漏调试
C++和其他高级语言不同,需要自行管理内存,项目大\调用多,容易内存泄漏.内存申请释放使用malloc/free和new delete两种方式.当内存报错弹出一个陌生的地址,我一脸懵逼,不清楚是哪个地方出的错,特别是程序退出的时候报错更不好定位.可以使用第三方工具来定位解决,也可以自己想办法解决.我在做神经网络训练的时候碰到一个的BUG,发送完训练图片之后直接提示使用了非法内存.HEAP[Test.exe]: HEAP: Free Heap block 0000015E950E4A60 mod
2020-09-15 14:41:04
583
原创 js和python通信
js和python是两种语言,js处理网页数据,python可作为服务端开发,两者通过websocket进行通信,websocket是socket的封装,省去了通信上的HTTP协议转换上的麻烦.中大型项目推荐使用torando/Djiango平台,两个平台集成度较高,方便开发使用.实验以发送html页面上的图片到服务器后端为例子.服务端接收图片后,开启本地端口为10086的服务,等待前端的连接.服务把前端发的图像url存在本地文件car.bmp.import asyncioimport.
2020-08-24 18:10:20
2183
原创 Zynq AXI-GPIO
硬件:Xilinx Zynq-7000 SoC ZC706版本:vivado2015.4Zynq上有三种GPIO方式,AXI-GPIO是其中一种,需要创建一个AXI-GPIO核,AXI总线连接至ZYNQ。然后配置GPIO的宽度和初始状态。All Outputs:设置成输出,根据需要配置。GPIO Width为GPIO的数量,这边配置成2Default Output Va...
2019-12-04 14:46:21
1168
原创 嵌入式系统设计师笔记
努力了3个月,终于考过了!把这阶段的心得和笔记分享到网上 指令周期若干个即周期组成,是取指令、分析、执行所需的全部时间。过程CPU从<程序计数器>获取所需的指令地址 (PC上取指令地址)从内存(cache)读取指令的内容暂存<暂存寄存器>,然后进行分析和执行 (IR暂存指令地址对应的指令)简称IR 指令寄存器...
2018-12-20 13:57:26
1491
原创 ZYNQ PL-PS中断
硬件:Xilinx Zynq-7000 SoC ZC706版本:vivado2015.4目的:PL触发中断,PS做中断处理PL部分添加两个中断源,一个普通中断,一个FIQ中断,对应中断号为61和28连接图约束set_property PACKAGE_PIN AK25 [get_ports {SW1[0]}]set_property IOSTANDARD L...
2018-11-09 17:15:56
4327
1
原创 ZYNQ 使用EMIO点亮LED
硬件:Xilinx Zynq-7000 SoC ZC706版本:vivado2015.4目的:同时闪烁3个灯。点亮分为PS和PL两部分。PL属于硬件连接。PL部分设置EMIO宽度为3连接EMIO设置管脚约束Create HDL Wapper生成.v文件gpio_0_tri_io在.v文件里生成,注意不是GPIO_0;管脚号PACKAGE_PIN...
2018-11-01 16:16:28
1402
原创 编址范围计算
寻址的时候需要地址,所以就需要到编址。编址的时候需要考虑字长、存储容量。几个名词较为抽象,先解释清楚。字长是CPU一次能并行处理的二进制位数,有8/16/32/64位,也称为8/16/32/64位机器。字节8位一字节单字编址单字这里不解释为字节,理解为单字长编址双字编址理解为双字长编址 ,32位字长,对应编址方式就是64位的步长。即地址访问偏移64位。像C语...
2018-10-20 13:32:27
3966
原创 Android微信刷卡支付开发
微信开发不容易,在于各个环节的理解和疏通。支付类型就分为几种,每种的业务也不相同,所以就困扰了很多人,我也抱怨过资料的混乱,没办法慢慢梳理。摸索过后才知道我需要的是刷卡支付业务。公司的Android终端集成扫描功能,不需要调用微信的扫描。1、什么是刷卡支付刷卡支付场景就像超市收银台扫你微信上的二维码,收银台主动发起扫码请求,扫码完成后扣取你的费用。流程如下图
2018-01-29 11:07:21
1572
17
原创 Android步进电机
本文介绍在Android环境下添加步进电机的驱动和电机应用的思路。摄像头需要2个步进电机,控制左右旋转和上下旋转,底盘需要2个步进电机,控制车体移动,步进电机5线4相,总共需要16路pwm。限于板子IO口数量不够,本次调试pwm模块pca9685拓展,支持16路pwm,我直接从x宝买了块模块,商家没技术支持。本章包括硬件搭建、驱动编写和测试程序编写。硬件准备 连接设备至na...
2016-05-24 14:04:18
3578
原创 Android Jni编写
Android经常会调用到jni库,作为厂商经常需要提供jni库给用户,一方面是对客户提供接口,方便客户操作。另一方面,算法或者设备操作细节不方便对客户公开,对我们代码起到保密作用。
2016-04-23 22:50:57
553
原创 Linux 内核文件操作
正常思路是应用里读取文件内容,再通过ioctl、write等方式把文件buffer传送到内核,内核里不推荐使用对文件IO直接操作,但是要使用还是可以的。
2016-01-25 14:13:25
639
汇编AND指令取高4位?
2018-10-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人