当前位置: 首页 > news >正文

企业网站建设课程体会谷歌 chrome 浏览器

企业网站建设课程体会,谷歌 chrome 浏览器,网站建设的经济可行性分析,网站半年没更新怎么做SEO您提到的两种架构描述本质上遵循相同的分层设计理念,但存在差异的原因在于 视角不同 和 硬件平台特性。以下是详细解析: 一、架构对比分析 1. 逻辑分层(通用软件设计视角) 应用层(UI/用户交互)↓ 业务逻辑…

您提到的两种架构描述本质上遵循相同的分层设计理念,但存在差异的原因在于 视角不同硬件平台特性。以下是详细解析:


一、架构对比分析

1. 逻辑分层(通用软件设计视角)
应用层(UI/用户交互)↓
业务逻辑层(平衡算法/文件管理)↓
驱动层(传感器采集/硬件控制)
  • 特点
    • 功能导向:按软件功能模块划分,与硬件无关
    • 通用性:适用于任何硬件平台(如PC/嵌入式/手机)
    • 典型应用:传统单核设备(如STM32F4系列)
2. 物理分层(STM32MP157异构平台视角)
+---------------------+
|     Qt应用层         |  
+---------------------+
|   Linux服务层        | 
+---------------------+
|  FreeRTOS实时层      | 
+---------------------+
| 硬件抽象层(HAL)     | 
+---------------------+
  • 特点
    • 硬件耦合:紧密结合双核异构架构(A7+M4)
    • 实时性优化:明确区分实时任务(M4)与非实时任务(A7)
    • 典型应用:需要硬实时+复杂UI的场景(如工业HMI)

二、分层差异的原因

1. 多出的"Linux服务层"与"FreeRTOS实时层"
  • 硬件差异

    • STM32MP157 的双核特性要求明确划分操作系统层级:
      • Linux层:管理UI、网络、文件系统等非实时任务
      • FreeRTOS层:处理ADC采样、电机控制等实时任务
    • 单核芯片(如i.MX6ULL):无需此分层,所有任务在单一OS中运行
  • 功能必要性

    非实时请求
    跨核通信
    硬件驱动
    Qt应用层
    Linux服务层
    FreeRTOS实时层
    HAL层
2. 硬件抽象层(HAL)的定位
  • 在传统分层中:HAL属于"驱动层"的一部分
  • 在异构分层中:HAL作为独立层,屏蔽双核差异:
    // HAL接口示例(统一A7/M4访问)
    typedef struct {int (*read_sensor)(void);      // M4实现void (*set_led)(int state);    // A7实现
    } HAL_Operations;
    

三、非STM32MP157平台的架构调整

1. 使用纯Linux平台(如i.MX6ULL)
应用层(Qt)↓
业务逻辑层(算法+文件)↓
Linux内核层(驱动+实时补丁)↓
硬件层(传感器/屏幕)
  • 关键调整
    • 移除FreeRTOS层,实时任务通过 Linux PREEMPT_RT 补丁实现
    • 示例配置:
      # 内核配置
      CONFIG_PREEMPT_RT_FULL=y
      CONFIG_HIGH_RES_TIMERS=y
      
2. 使用低端MCU(如STM32F4)
应用层(裸机UI)↓
业务逻辑层(简化算法)↓
驱动层(HAL库)
  • 典型方案
    • UI使用嵌入式GUI(如TouchGFX/LVGL)
    • 文件系统使用FatFS
    • 实时性由中断保障
3. 不同硬件平台的架构映射表
硬件平台对应架构分层实时性保障方案
STM32MP157(双核)Qt应用 + Linux服务 + FreeRTOS实时 + HALM4核硬实时
i.MX6ULL(单核)Qt应用 + Linux内核(RT补丁) + HAL软实时(PREEMPT_RT)
STM32F4(单核)裸机应用 + 驱动层中断优先级控制

四、架构设计建议

1. 通用设计原则
  • 模块化隔离

    // 业务逻辑层接口(硬件无关)
    class BalanceAlgorithm {
    public:virtual double calculate(QVector<double> samples) = 0;
    };// 平台相关实现
    class STM32MP157Balance : public BalanceAlgorithm { /*M4核实现*/ };
    class LinuxRTBalance : public BalanceAlgorithm { /*PREEMPT_RT实现*/ };
    
  • 跨平台HAL设计

    // hal.h
    #if defined(STM32MP157)#include "hal_stm32mp157.h"
    #elif defined(IMX6ULL)#include "hal_imx6ull.h"
    #endif
    
2. 选择依据
考量因素推荐架构原因
需要硬实时(<10μs)STM32MP157异构分层M4核专用于实时任务
成本敏感i.MX6ULL单核Linux架构省去M4核开发成本
界面复杂度低STM32F4裸机架构减少OS开销

五、示例:i.MX6ULL单核方案实现

1. 软件架构
应用层(Qt Quick)↓
业务逻辑层(平衡算法 + 模板管理)↓
Linux内核层(带PREEMPT_RT补丁)↓
驱动层(SPI/I2C/ADC驱动)
2. 实时数据采集实现
// 内核模块(确保实时性)
static irq_handler_t adc_isr(int irq, void *dev) {struct adc_sample *sample = kmalloc(sizeof(*sample), GFP_ATOMIC);sample->value = read_adc();kfifo_put(&adc_fifo, sample); // 无锁环形缓冲区return IRQ_HANDLED;
}// 用户空间线程(设置实时优先级)
void *data_thread(void *arg) {struct sched_param param = { .sched_priority = 99 };pthread_setschedparam(pthread_self(), SCHED_FIFO, &param);while(1) {struct adc_sample sample;if(kfifo_get(&adc_fifo, &sample)) {process_sample(sample.value);}}
}

结论

两种架构描述本质上是 同一设计思想在不同硬件场景下的具体表现。是否添加额外的分层(如Linux/FreeRTOS层),取决于:

  1. 硬件是否异构(是否需要区分实时核与非实时核)
  2. 实时性要求级别(硬实时需独立RTOS,软实时可用Linux补丁)
  3. 系统复杂度(简单设备可合并业务逻辑与驱动层)

建议根据最终硬件选型,参考以下决策树:

需要硬实时?
选择STM32MP157异构架构
界面复杂度高?
选择i.MX6ULL单核Linux
选择STM32F4裸机方案
http://www.hkea.cn/news/564283/

相关文章:

  • 重庆做网站价格优化软件下载
  • 如何做网站镜像今日最火的新闻
  • 水果网站开发所需的成本市场营销实际案例
  • 无锡市新吴区住房和建设交通局网站西安百度关键词包年
  • 网站平台方案设计seo上首页
  • 郑州做网站的联系方式搜狗友链交换
  • 一般建设一个网站多少钱怎么接广告赚钱
  • 计算机专业网站开发方向销售推广方案
  • 上海网站建设公司排名西安百度公司
  • 中国网网址是多少网站推广优化教程
  • 关于加强机关网站建设运营培训
  • dw做的网站怎么让别人看到如何建立一个网站
  • 保险网站建设优缺点seo代码优化步骤
  • 如何快速建网站百度电脑版入口
  • 山东省建设工程信息网站最近最新的新闻
  • 免费网站建设方案锦绣大地seo官网
  • 电子商务的网站建设牛排seo系统
  • 资源收费网站怎么做网站快速优化排名官网
  • 招标网哪个网站信息可靠百度站长工具网站
  • 郑州七七网站建设互联网推广公司
  • 佛山做外贸网站代理商百度收录技术
  • 公司网站建设需要什么今日热搜第一名
  • 烟台建设企业网站网站快速收录入口
  • 怎么做繁体字网站网络营销公司注册找哪家
  • 做ppt介绍网站吗网站搜索引擎优化工具
  • 深圳网站建设有没有市场百度搜索推广的五大优势
  • 网站建设好的图片百度互联网营销
  • 柳州网站制作公司seo优化什么意思
  • 网站建设做的好的公司淘宝关键词优化怎么弄
  • 手机网站用模版方象科技的企业愿景