和凡科网类似的网站wordpress特效 插件推荐

diannao/2026/1/24 7:49:04/文章来源:
和凡科网类似的网站,wordpress特效 插件推荐,苏州专业网站建设定制,无锡网站制作哪家价格便宜在I.MX RT1170中#xff0c;它有CM7和CM4核#xff0c;而消息单元(MU)模块使SoC内的两个处理器能够通过MU接口传递消息以进行通信和协调。 文章目录 1 MU特性2 功能描述3 MU通信实例3.1 轮训实现多核通信3.1.1 MU_SetFlags和MU_GetFlags3.1.2 MU_SendMsg和MU_ReceiveMsg3.1.…在I.MX RT1170中它有CM7和CM4核而消息单元(MU)模块使SoC内的两个处理器能够通过MU接口传递消息以进行通信和协调。 文章目录 1 MU特性2 功能描述3 MU通信实例3.1 轮训实现多核通信3.1.1 MU_SetFlags和MU_GetFlags3.1.2 MU_SendMsg和MU_ReceiveMsg3.1.3 调试从核注意事项 3.2 中断实现多核通信 1 MU特性 MU包括以下特性 通过中断或轮询进行的消息控制 中断也可用于从低功耗模式唤醒另一处理器允许一个处理器使用中断向另一个处理器发出信号 对称的处理器接口每一侧支持以下功能 四个通用中断请求在另一核中反映三个通用标志在另一核中反映四个带有可屏蔽中断的接收寄存器四个带有可屏蔽中断的发送寄存器 由于CM7和CM4可能使用不同的时钟MU需要确保在传递消息时两侧的访问是同步的以避免数据传输或通信中的时序问题。 MU通过使用两组对应的寄存器来实现这种同步以确保消息的正确传递和处理。 2 功能描述 主要特性描述描述处理器间中断CM7和CM4各有12个中断源用于向另一处理器发出信号。这些中断可用于RX/TX事件的通知和处理器间的通用信号。MU复位处理器A可通过其对应的控制寄存器(ACR)中的控制位(MUR)对整个MU进行复位。MUR位是自清零位。核间状态和控制通信MU提供了一种方式使两个核能够使用两个处理器的状态和控制寄存器进行通信。一个核的状态寄存器反映了另一个核的状态。控制寄存器用于控制操作例如启用中断和向另一处理器发送中断。核间同步消息传输通过同步机制更新两个核各自的传输和接收满标志实现。注意更新其中一个核的寄存器后被另一个核接收到的过程存在延迟。直接访问共享内存和避免冲突MU在两个核都提供了4个传输寄存器和4个接收寄存器。同时两个核可以直接访问SoC的共享内存资源。为了访问共享内存的冲突(互斥)可以使用MU的中断和传输接收寄存器解决这个问题。支持双核不同频率的时钟MU模块的核心是事件控制机制MU制定了事件更新延迟用于同步MU两侧的访问因为两个核可以使用不同的时钟。内存映射寄存器MU连接在双核各自的外设总线上 3 MU通信实例 MU向双核都提供了32位的状态和控制寄存器用于控制操作(如中断、复位)以及检查另一侧的状态。对于消息传递MU在两个处理器都提供了4个32位的只写传输寄存器和4个32位的只读接收寄存器。这些寄存器用于彼此发送消息它们可以使用MU任一侧的控制和状态寄存器中提供的3个通用标志位进行控制。 通过MU一个核可以传递一个32位的消息给另一个核同时触发对方的中断。MU支持4个双向的通道 下面通过SDK中的代码来看一下MU模块如何使用 3.1 轮训实现多核通信 这里以SDK中的evkmimxrt1170_mu_polling_core为例进行分析它实现以下功能 core 0通过MU模块以轮询模式向core 1发送消息。core 1通过轮询模式将消息回发给core 0。core 0通过轮询模式接收来自core 1发送的消息。 这里core 0为CM7(主核)core 1为CM4(从核)。主核使用的MU模块成为MUA从核使用的MU模块为MUB。 主从核实现 下面一步步分析一下主从核代码的执行过程。 3.1.1 MU_SetFlags和MU_GetFlags 先来看一下初始化过程 主核代码流程从核代码流程初始化主核MU时钟:MU_Init(MUA)-从CM7启动CM4核:设置向量表,复位等:APP_BootCore1()-等待从核准备好:while (BOOT_FLAG ! MU_GetFlags(MUA))初始化从核MU时钟:MU_Init(MUB)-设置主核Flag指示从核已经运行:MU_SetFlags(MUB, BOOT_FLAG); MU_SetFlags 这里主核在启动从核后等待从核置位而从核启动后则调用MU_SetFlags置位。下面来看一下这个函数 void MU_SetFlags(MU_Type *base, uint32_t flags) {while (0U ! (base-SR ((uint32_t)MU_SR_FUP_MASK))){}MU_SetFlagsNonBlocking(base, flags); }static inline void MU_SetFlagsNonBlocking(MU_Type *base, uint32_t flags) {uint32_t reg base-CR;reg (reg ~((MU_CR_GIRn_MASK | MU_CR_NMI_MASK) | MU_CR_Fn_MASK)) | MU_CR_Fn(flags);base-CR reg; }先来看一下最终调用的MU_SetFlagsNonBlocking函数 #define MU_CR_GIRn_MASK (0xF0000U) #define MU_CR_NMI_MASK 0U #define MU_CR_Fn_MASK (0x7U) #define MU_CR_Fn(x) (((uint32_t)(((uint32_t)(x)) 0)) 7) static inline void MU_SetFlagsNonBlocking(MU_Type *base, uint32_t flags) {uint32_t reg base-CR;reg (reg ~((MU_CR_GIRn_MASK | MU_CR_NMI_MASK) | MU_CR_Fn_MASK)) | MU_CR_Fn(flags);base-CR reg; }这里将GIRn和Fn的位都清零了然后根据flag的值再置Fn的位 可以看到GIRn是用于中断通知MUA的这里我们用的是轮询方式所以清零。对于Fn位来说 Fn的3位分别代表MUB向MUA发送的不同标志Fn位在MU重置(系统初始化或其它条件)的时候会清零或者直接写000也能清零MUA可以通过其SR寄存器的Fn位来获取MuB发送过来的标志 所以这里的MU_SetFlagsNonBlocking实际上就是置CR寄存器的Fn位。我们在程序中将其置为BOOT_FLAG也就是三个标志位的最低位为1。 #define BOOT_FLAG 0x01U另外在从核设置标志位之前需要等待其MUB-SR寄存器的FUP标志位置0来看一下这个位的定义 也就是说如果之前MUB设置的标志位还没有update到MUA中FUP为1且此时修改CR的Fn位也是无效的我们需要等待其自动清零后才能置标志位。 MU_GetFlags #define MU_SR_Fn_MASK (0x7U) #define MU_SR_Fn_SHIFT (0U) static inline uint32_t MU_GetFlags(MU_Type *base) {return (base-SR MU_SR_Fn_MASK) MU_SR_Fn_SHIFT; }前面有提到MUA需要从SR寄存器的低三位获取MUB传来的标志位这个函数就是获取SR的低三位。如果BOOT_FLAG相匹配则程序继续往下执行。 3.1.2 MU_SendMsg和MU_ReceiveMsg 主核代码流程从核代码流程发送消息给MUB:MU_SendMsg(MUA, kMU_MsgReg0, g_msgSend[i]);--接收MUA的消息:MU_ReceiveMsg(MUB, kMU_MsgReg0);-回显收到的消息:MU_SendMsg(MUB, kMU_MsgReg0, g_msgRecv[i]);MU_ReceiveMsg(MUA, kMU_MsgReg0);- 我们知道MU有4个双向的通信通道这里就利用通道0进行主从核的通信主核发从核收然后从核回显信息给主核。 MU_SendMsg void MU_SendMsg(MU_Type *base, uint32_t regIndex, uint32_t msg) {while (0U (base-SR (((uint32_t)kMU_Tx0EmptyFlag) regIndex))){}base-TR[regIndex] msg; }typedef enum _mu_msg_reg_index //regIndex的取值,对应4个通道 {kMU_MsgReg0 0,kMU_MsgReg1,kMU_MsgReg2,kMU_MsgReg3, } mu_msg_reg_index_t;发送之前我们需要等待对应MU的SR寄存器的[23:20]位的TEn(发送寄存器空)标志四个位就对应四个通道。当消息发送到另一核后该位会置0当该位置1时表示我们可以继续发送数据了。 上图为MUA寄存器的说明MUB类似 接着我们只要将数据写入TR寄存器即可四个通道各有一个32位的TR寄存器 来看一下MUA中的TR0寄存器的说明TR1~TR3类似 写入MUA的TR0寄存器的数据会反映在MUB的RR0中这些寄存器都不是双缓冲的所以数据会覆盖写TR0会清除MUA的SR中的TE0位并置MUB的SR中的RF0(接收满)位对TR0寄存器的任何写操作都将更新所有状态信息。 MU_ReceiveMsg uint32_t MU_ReceiveMsg(MU_Type *base, uint32_t regIndex) {while (0U (base-SR (((uint32_t)kMU_Rx0FullFlag) regIndex))){}return base-RR[regIndex]; }前面有提到MUA发来数据后会置MUB的SR中的RF0(接收满)位。 所以我们等待RF0位被置位然后获取消息即可。消息从RR寄存器获取同样地四个寄存器对应四个通道 其中RR0寄存器的描述如下 3.1.3 调试从核注意事项 这篇文章就不说明如何调试双核了后面我会写一篇文章来讲解。 这里主要是双核调试有一个问题我们通常首先启动主核初始化系统然后启动次核运行。在同时调试双核的情况下调试器会启动次核。然后在主核初始化尚未完成的情况下次核可能会提前开始运行。 这里我们使用RT1170的SRC(System Reset Controller)中的GPR(General Purpose Register)指示从核是否可以运行。如下图所示这个寄存器对双核都可见除了第0,1,2,3,4,9个GPR被ROM BootLoader使用外其它的我们可以用来设置标志位这里我们使用GPR20。 次核在启动时应检查并等待SRC-GPR中的标志主核在其初始化工作完成时在SRC-GPR中设置该标志。 主核在启动从核后执行以下代码 #define BOARD_SECONDARY_CORE_GO_FLAG 0xa5a5a5a5u #define BOARD_SECONDARY_CORE_SRC_GPR kSRC_GeneralPurposeRegister20SRC-GPR[BOARD_SECONDARY_CORE_SRC_GPR] BOARD_SECONDARY_CORE_GO_FLAG;从核在上电后执行以下代码 #define BOARD_SECONDARY_CORE_GO_FLAG 0xa5a5a5a5u #define BOARD_SECONDARY_CORE_SRC_GPR kSRC_GeneralPurposeRegister20while (BOARD_SECONDARY_CORE_GO_FLAG ! SRC-GPR[BOARD_SECONDARY_CORE_SRC_GPR]){} // 等待主核置位 SRC-GPR[BOARD_SECONDARY_CORE_SRC_GPR] 0x0; // 用完后恢复GPR20的初始值0,防止主从核软件复位后,从核又提前运行3.2 中断实现多核通信 和刚刚轮询实现的功能一样我们来学习一下如何使用中断来收发数据。 这里使用中断的方式实现与刚刚轮询代码一样的功能整体代码类似下面来梳理一下中断需要做的操作 主核 1、使能中断 (1)NVIC使能 NVIC_EnableIRQ(MUA_IRQn);(2)使能中断标志位发送和接收中断 MU_EnableInterrupts(MUA, (kMU_Tx0EmptyInterruptEnable | kMU_Rx0FullInterruptEnable));(3)发送和接收数据 我们打开发送空中断后就调用MU_SendMsgNonBlocking向MUB发送消息等这次发送完毕后再次进入发送空中断则调用MU_DisableInterrupts禁用发送空中断。 同样地等从核MUB发来消息后进入接收满中断然后调用MU_ReceiveMsgNonBlocking接收数据等下次接收满时调用MU_DisableInterrupts关闭接收满中断。 #define MSG_LENGTH 32U void APP_MU_IRQHandler(void) {uint32_t flag 0;flag MU_GetStatusFlags(MUA);if ((flag kMU_Tx0EmptyFlag) kMU_Tx0EmptyFlag){if (g_curSend MSG_LENGTH){MU_SendMsgNonBlocking(MUA, kMU_MsgReg0, g_msgSend[g_curSend]);}else{MU_DisableInterrupts(MUA, kMU_Tx0EmptyInterruptEnable);}}if ((flag kMU_Rx0FullFlag) kMU_Rx0FullFlag){if (g_curRecv MSG_LENGTH){g_msgRecv[g_curRecv] MU_ReceiveMsgNonBlocking(MUA, kMU_MsgReg0);}else{MU_DisableInterrupts(MUA, kMU_Rx0FullInterruptEnable);}}SDK_ISR_EXIT_BARRIER; }从核 整体流程和轮询代码一致另外和主核一样要打开对应的中断现在来看看MUB的中断回调函数 void APP_MU_IRQHandler(void) {uint32_t flag 0;flag MU_GetStatusFlags(APP_MU);if ((flag kMU_Rx0FullFlag) kMU_Rx0FullFlag){if (g_curRecv MSG_LENGTH){g_msgRecv[g_curRecv] MU_ReceiveMsgNonBlocking(MUB, kMU_MsgReg0);}else{MU_DisableInterrupts(MUB, kMU_Rx0FullInterruptEnable);}}if (((flag kMU_Tx0EmptyFlag) kMU_Tx0EmptyFlag) (g_curRecv MSG_LENGTH)){if (g_curSend MSG_LENGTH){MU_SendMsgNonBlocking(MUB, kMU_MsgReg0, g_msgRecv[g_curSend]);}else{MU_DisableInterrupts(MUB, kMU_Tx0EmptyInterruptEnable);}}SDK_ISR_EXIT_BARRIER; }同样地在使能发送空中断后这里的中断就一直会被调用但是这里的发送空分支中还判断了(g_curRecv MSG_LENGTH)也就是MUB接收了MUA发送的完整的MSG_LENGTH(32)字节才允许进入这个分支进入后将收到的数据回显给MUA然后在下一次进入发送空中断时关闭中断。 对于接收满中断来说一样收到MSG_LENGTH字节后在下一次进入中断时关闭接收满中断。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建个注册页面网站做网站被坑能找司法吗

一、项目简介 本项目是一套基于SSM框架实现的人力资源管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、功能…

郑州网站竞价托管张家港手机网站设计

1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。 1Panel面板是一个强大的服务器管理工具,它通过提供一站式管理、易于使用的界面、高度的可定制性、安全可靠的性能、强大的扩展性以及活跃的社区支持,为用户提供了一个高效、便捷的管理解决方案…

泰安网站建设与优化app运营策划

尘埃落定,昨天结束了复试,终于被拟录取了,只有真正经历过才知道不容易,一年来受到王道的很多帮助,论坛上软件工程的信息相对来说还是比较少的,所以也想分享下自己的一些经验,帮助后来人。本人普…

百度网站两两学一做心得体会o2o网站建设效果

H:01背包,但是bit 这题一看数据范围很大,重量和价值都是1e8级别的,当时还在想是不是背包,原来就是位运算 具体来说,我们枚举m的每一位为1的1,强制这一位为0,这样m被分为前后两部分…

网站编程用什么语言好求个网站你会感谢我的

在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这个表示在不同情况下,返回的东西不一样!String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如&…

网站怎么做才能让更多平台展现好的设计师互动网站

小傅哥 | https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获。专注于原创专题案例编写,目前已完成的专题有;Netty4.x实战专题案例、用Java实现JVM、基于JavaAgent的全链路监控、手写RPC框架、架构设计专题案例、源码分析等。你…

广州公司网站托管学习网站开发心得体会

引言 在日常开发中&#xff0c;经常会遇到产品经理提出一个需求“上传视频”&#xff0c;而且还得显示出视频的播放时长&#xff0c;我们直接上最简单的代码&#xff0c;必须是最简单&#xff0c;多一句啰嗦都不准点赞。 How to do 1.提前引入包 <!--视频多媒体工具包 包…

网站核验点查询建设公司名字

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 朋友们大家好&#xff0c;本篇文章我们来到初始化列表&#xff0c;隐式类型转换以及explicit的内容 目录 1.初始化列表1.1构造函数体赋值1.2初始化列表1.2.1隐式类型转换与复制初始化 1.3e…

想要做一个网站 该怎么做网站建设增城

1.dd命令简介功能&#xff1a;把指定的输入文件拷贝到指定的输出文件中&#xff0c;并且在拷贝过程中可以进行格式转换。可以用该命令实现DOS下的diskcopy命令的作用。先用dd命令把软盘上的数据写成硬盘的一个寄存文件&#xff0c;再把这个寄存文件写入第二张软盘上&#xff0c…

中小型网站设计公司新媒体营销期末试卷及答案

论文真题 在信息系统的开发与建设中&#xff0c;分层设计是一种常见的架构设计方法&#xff0c;区分层次的目的是为了实现“高内聚低耦合”的思想。分层设计能有效简化系统复杂性&#xff0c;使设计结构清晰&#xff0c;便于提高复用能力和产品维护能力。一种常见的层次划分模…

电影网站开发需要多少钱电子商务市场的发展前景

Mysql的版本和存储引擎较多&#xff0c;为了选择最适合业务使用的系统&#xff0c;需要进行一定的验证&#xff0c;本文描述mysql的验证过程和思路。主要涉及&#xff1a;Mysql的版本v Mariadbv Tokudbv Oracle具体的存储引擎v Myisamv Innodbv TokuDBv Maria如下是具体的思路M…

建筑培训网站有哪些网站建设的需求分析报告

题型指引 一、选择题二、编程题 ★★写在前面★★ 本题库源自互联网&#xff0c;仅作为个人学习使用&#xff0c;记录C语言题目练习的过程&#xff0c;如果对你也有帮助&#xff0c;那就点个赞吧。 一、选择题 1、有以下函数&#xff0c;该函数的功能是&#xff08; &#xff…

成都门户网站有哪些网线制作排序

牛客题霸 [ 环形链表的约瑟夫问题] C题解/答案 题目描述 据说著名犹太历史学家 Josephus 有过以下故事&#xff1a;在罗马人占领乔塔帕特后&#xff0c;39 个犹太人与 Josephus 及他的朋友躲到一个洞中&#xff0c;39 个犹太人决定宁愿死也不要被敌人抓到&#xff0c;于是决定…

盐城网站开发厂商做防护信息的网站

在日常使用过程中&#xff0c;当有时候需要运行开机自启脚本&#xff0c;同时想看到输出结果的时候&#xff0c;不免就需要将系统配置为免密登录模式&#xff0c;本文主要介绍再init3模式(多用户命令行界面)&#xff0c;运行开机自启脚本及输出脚本指令运行数据结果。本文使用的…

做平面设计的网站潭州学院wordpress

Update 代码已经上传到github上了&#xff0c;可以点这里 Cutting 一直说这要整理一下Computer Vision课程的大作业&#xff0c;拖了好久。这两天忙着写一个订单处理的第三方库&#xff0c;陷入了僵局&#xff0c;所以换个口味&#xff0c;把大作业整理一下。 Requirement W…

土特产网站建设事业计划书电子商务外包公司

这是由National Institute of Technology Rourkela, Central University of Rajasthan发布在2022 ICETCI的论文&#xff0c;利用离散小波变换(DWT)得到的多分辨率域特征对1D-CNN模型进行心音分类训练。 预处理& DWT 由于FHS和各种病理声的频率范围在500hz以下[5]&#xff…

2008 做网站常用的网站开发设计语言

目录 熔断器概述 使用Sentinel工具 什么是Sentinel 微服务集成Sentinel 配置provider文件&#xff0c;在里面加入有关控制台的配置 实现一个接口的限流 基本概念 重要功能 Sentinel规则 流控规则 简单配置 配置流控模式 配置流控效果 降级规则 SentinelResource…

上海网站建设流app下载应用

目录 一、使用的方法 1.Hashtable哈希表 2.Hashtable哈希表的Add方法 &#xff08;1&#xff09;定义 &#xff08;2&#xff09;示例 3.XML文件的使用 二、实例 1.源码 2.生成效果 可以通过使用哈希表可以对XML文件进行查询。 一、使用的方法 1.Hashtable哈希表…

各大网站域名wordpress设置icon

对于新手卖家来说&#xff0c;店铺运营是头等大事。运营得当就能获取相应的收益&#xff0c;那么Shopee 虾皮运营的核心技巧是什么呢&#xff1f;今天给大家分享6⃣大核心技巧&#xff0c;学会了下个大卖就是你。 Shopee 虾皮运营六大核心技巧 1️⃣ 分时段上新 &#x1f4cc;…

印刷报价网站源码下载wordpress 弹出视频播放

随着互联网的快速发展&#xff0c;线上小程序商城已经成为了一种流行的电商模式。对于花店来说&#xff0c;开发线上小程序商城不仅可以扩大销售渠道&#xff0c;提高销售效率&#xff0c;还可以增加客户粘性&#xff0c;提升品牌形象。下面就以花店为例&#xff0c;教你怎么开…