W801学习笔记十二:掌机进阶V3版本之驱动(PSRAM/SD卡)

本次升级添加了两个模块,现在要把他们驱动起来。

一:PSRAM

使用SDK自带的驱动,我们只需要写一个初始化函数,并在其中添加一些自检代码。

void psram_heap_init(){wm_psram_config(0);//实际使用的psram管脚选择0或者1,W861为2psram_init(PSRAM_QPI);char *psr = (char*) psram_heap_malloc(1024*1024*2);memset(psr,122, 64);for(u8 i=0;i<64;i++){if(psr[i] != 122){printf("init psram false.\n");return;}}printf("init psram success. add = %x\n", psr);psram_heap_free(psr);
}

我们可以看到默认的引脚使用:

		case 0://W800 or w801tls_io_cfg_set(WM_IO_PB_00, WM_IO_OPTION4);/*CK*/tls_io_cfg_set(WM_IO_PB_01, WM_IO_OPTION4);/*CS*/tls_io_cfg_set(WM_IO_PB_02, WM_IO_OPTION4);/*D0*/tls_io_cfg_set(WM_IO_PB_03, WM_IO_OPTION4);/*D1*/tls_io_cfg_set(WM_IO_PB_04, WM_IO_OPTION4);/*D2*/tls_io_cfg_set(WM_IO_PB_05, WM_IO_OPTION4);/*D3*/tls_open_peripheral_clock(TLS_PERIPHERAL_TYPE_PSRAM);			break;

二:SD卡

使用SDK自带的SDIO驱动,我们只需要写一个初始化函数,并在其中添加一些自检代码。


void fatfs_init(void){FRESULT res_sd;//文件操作结果BYTE work[FF_MAX_SS];wm_sdio_host_config(1);//挂载SD卡res_sd = f_mount(&fs, "0:", 1);//***********************格式化测试****************************if(res_sd == FR_NO_FILESYSTEM){while(1){printf("SD卡没有文件系统,即将进行格式化...\r\n");//格式化res_sd = f_mkfs("0:", 0, work, sizeof(work));if(res_sd == FR_OK){printf("SD卡成功格式化!\r\n");//格式化后先取消挂载res_sd = f_mount(NULL, "0:", 1);//再重新挂载res_sd = f_mount(&fs, "0:", 1);break;}else{printf("文件格式化失败!错误代码:%d; will try again...\r\n",res_sd);}}}else if(res_sd != FR_OK){printf("挂载文件系统失败!可能是因为文件初始化失败!错误代码:%d\r\n", res_sd);}else{printf("文件系统挂载成功, 可进行读写测试!\r\n");}
}

我们可以看到默认的引脚使用:

case 1: tls_io_cfg_set(WM_IO_PA_09, WM_IO_OPTION1);/*CK*/tls_io_cfg_set(WM_IO_PA_10, WM_IO_OPTION1);/*CMD*/tls_io_cfg_set(WM_IO_PA_11, WM_IO_OPTION1);/*D0*/tls_io_cfg_set(WM_IO_PA_12, WM_IO_OPTION1);/*D1*/tls_io_cfg_set(WM_IO_PA_13, WM_IO_OPTION1);/*D2*/tls_io_cfg_set(WM_IO_PA_14, WM_IO_OPTION1);/*D3*/tls_open_peripheral_clock(TLS_PERIPHERAL_TYPE_SDIO_MASTER);break;

提供完整代码下载,结合前面的硬件制作,可以完成掌机制作。

下一章开始,我们进行软件开发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2981303.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

程序员过了35岁没人要?“这行越老越香”

程序员35岁失业&#xff1f;参加完OceanBase开发者大会&#xff0c;我又悟了&#xff01; 周六参加了OceanBase2024 开发者大会的现场&#xff0c;来之前我其实挺忐忑的&#xff0c;我觉得一个数据库产品的发布会&#xff0c;能有什么新鲜的东西&#xff1f; 踏入酒店的那一刻&…

HORROR SYSTEM

HORROR SYSTEM是一个创新的工具包,允许开发者在Unity3D中创建独特的原创恐怖游戏。 HORROR SYSTEM是一款强大而灵活的工具,旨在基于Unity3D引擎创建沉浸式第三人称恐怖游戏。 这项资产易于使用且直观,可以让任何经验水平的开发人员将他们的想法付诸实践,创造出高质量、充满…

Git 保姆级教程(一):Git 基础

一、获取 Git 仓库 通常有两种获取 Git 项目仓库的方式&#xff1a; 1. 将尚未进行版本控制的本地目录转换为 Git 仓库&#xff1b; 2. 从其它服务器克隆 一个已存在的 Git 仓库。 两种方式都会在你的本地机器上得到一个工作就绪的 Git 仓库。 1.1 git init&#xff08;本地…

Linux的学习之路:19、进程信号(1)

摘要 今天这张说一下信号的一部分知识 目录 摘要 一、信号 1、生活角度的信号 2、技术应用角度的信号 3、注意 4、用kill -l命令可以察看系统定义的信号列表 5、信号处理常见方式概览 二、产生信号 1、通过终端按键产生信号 2、调用系统函数向进程发信号 3、由软件…

JAVA toString方法详解

hi&#xff0c;我是程序员王也&#xff0c;一个资深Java开发工程师&#xff0c;平时十分热衷于技术副业变现和各种搞钱项目的程序员~&#xff0c;如果你也是&#xff0c;可以一起交流交流。 今天我们来聊聊Java中toString方法~ toString方法的定义 在Java中&#xff0c;toStri…

boa.conf配置详解

boa的配置文件路径&#xff1a;/etc/boa/boa.conf Port 80 # 监听的端口号&#xff0c;缺省值是80 若80被占用&#xff0c;可修改监听端口为其他未占用端口&#xff08;如&#xff1a;88&#xff09; Listen 192.68.0.5 # 绑定调用的IP地址&#xff0c;一般注释掉&#xff0c;…

人工智能热度攀升市场广阔 业内:人机协同将成发展主流

以下文章来源&#xff1a;央广网 今年以来&#xff0c;人工智能产业热度持续攀升。文生视频软件Sora、文生音乐软件Suno等人工智能应用不断涌现&#xff0c;带给人们冲击的同时&#xff0c;也在影响着千行百业。本报今起推出“聚焦人工智能发展”系列报道&#xff0c;围绕人工智…

【JAVA进阶篇教学】第六篇:Java线程中状态

博主打算从0-1讲解下java进阶篇教学&#xff0c;今天教学第六篇&#xff1a;Java线程中状态。 理解并掌握线程的休眠、停止和挂起等操作是多线程编程中的重要内容。下面我将详细说明这些操作&#xff0c;并提供相应的代码案例。 目录 一、线程休眠&#xff08;Thread Slee…

Hadoop格式化namenode出错

​ 我们在对Hadoop进行格式化时 很有可能会出现以下错误 输入命令&#xff1a;hadoop namenode -format 报错信息&#xff1a;-bash&#xff1a;hadoop&#xff1a;command not found 我们总结的最主要原因有三个 Hadoop的环境变量是否配置 配置以后是否使其生效 vim /e…

java中线程池的简介及使用方法

目录 介绍 优点 运行原理 线程池的使用流程 基本使用步骤&#xff1a; 代码示例&#xff1a; 介绍 线程池是一种并发编程的技术&#xff0c;用于管理和复用多个线程以执行异步任务。它通常由两部分组成&#xff1a;任务队列和一组线程。任务队列用于存储待执行…

el-select下拉框远程搜索且多选时,编辑需要回显的一个简单案例

前端业务开发中不管使用vue2~3&#xff0c;还是react&#xff0c;angular各种前端技术栈&#xff0c;经常会遇到这种业务。一个下拉框Select中&#xff0c;不仅需要需要支持远程模糊搜索&#xff0c;还需要支持多选。并且在编辑时&#xff0c;还能正常把已经多选好的内容回显到…

视频改字祝福 豪车装X系统源码uniapp前端源码

uniapp视频改字祝福 豪车装X系统源码 全开源,只有uniapp前端,API接口需要寻找对应的。 创意无限!AI视频改字祝福,豪车装X系统源码开源,打造个性化祝福视频不再难! 想要为你的朋友或家人送上一份特别的祝福,让他们感受到你的真诚与关怀吗?现在, 通过开源的AI视频改字…

如何进行制造设备数据汇集,发挥数据的价值?

数字化转型正深刻推动制造企业实现远程监控、提高生产效率、降低生产成本、优化产品质量及明晰精细化方向。并且工业互联网的发展离不开工业数据的应用&#xff0c;而制造设备数据汇集正是应用的基础。但制造设备数据汇集存在以下难点及痛点&#xff1a; 1、安全把控难 关键的…

如何创建默认的docker0网桥

背景 重启docker服务之后&#xff0c;发现并没有创建默认的docker0网桥&#xff0c;所以导致端口无法映射&#xff0c;容器内IP为127.0.0.1。重启服务后&#xff0c;仍然没有docker0网桥的出现。 分析 docker0网桥是docker默认创建的虚拟网桥。但是有时候会发现&#xff0c;d…

56-FMC连接器电路设计

视频链接 FMC连接器电路设计01_哔哩哔哩_bilibili FMC连接器电路设计 1、FMC简介 1.1、FMC介绍 FMC&#xff08;FPGA Mezzanine Card&#xff09;是一个应用范围、适应环境范围和市场领域范围都很广的通用模块。FMC连接器连接了由FPGA提供的引脚和FMC子板的I/O接口。最新的…

机械校准件

机械校准件 校准 精度高 重复性好 涵盖多种同轴、波导校准件 校准件是矢量网络分析仪的测试附件&#xff0c;可大幅提高矢量网络分析仪的测试精度。 国产思仪机械校准件包含N型、3.5MM、2.92MM、2.4MNM、1.85MM全频段校准件以及特殊要求的校准件&#xff0c;可满足矢量…

python爬虫 - 爬取html中的script数据(zum.com新闻信息 )

文章目录 1. 分析页面内容数据格式2. 使用re.findall方法&#xff0c;编写爬虫代码3. 使用re.search 方法&#xff0c;编写爬虫代码 1. 分析页面内容数据格式 &#xff08;1&#xff09;打开 https://zum.com/ &#xff08;2&#xff09;按F12&#xff08;或 在网页上右键 --…

【工具】录屏软件Captura安装使用及ffmpeg下载配置

开启技术视频创作&#xff0c;录屏软件林林总总&#xff0c;适合的、习惯的最好。 录屏软件Captura的使用及ffmpeg下载配置 1.Captura下载、安装2.FFmpeg下载、配置3.Captura屏幕录制试用、录制视频效果 1.Captura下载、安装 Captura主要是一个免费开源的录屏软件&#xff0c…

西电超算使用方法-简易版

一、引言 西电超算不错&#xff0c;我很喜欢。本文仅供自己学习使用。 二、环境搭建 搭建环境需要有一些依赖库&#xff0c;但是其实西电超算说明手册并没有写的非常清楚。因此&#xff0c;这次实战演示一下&#xff0c;写一个运行sh文件脚本并提交作业。 1、选择GPU还是CP…

kontron触摸屏维修控创工控机TN1015-OC-19DCA11-XXX

德国Kontron控创工控机维修维修包括&#xff1a;Kontron人机界面、Kontron显示终端、Kontron工业控制计算机、Kontron处理器板、Kontron低功耗处理器、Kontron强固处理器板、Kontron图形板卡、Kontron核处理器板、Kontron工控机电源、Kontron主机故障等 kontron工控机维修常见…