SA-IS
[TOC] saisxx (顶层API)saisxx 是整个 sais.hxx 库提供给外部使用的公共接口函数。它本身不执行任何复杂的算法逻辑,其主要作用是作为一层封装,进行参数的合法性检查,处理一些简单的边界情况,并调用内部的核心实现 saisxx_private::suffixsort。 原理与设计思路解析 API 设计: 函数签名 template<typename string_type, typename sarray_type, typename index_type> 表明它是一个高度通用的模板函数。它可以接受任何满足随机访问迭代器 (Random Access Iterator) 条件的类型作为输入字符串 T 和输出数组 SA。例如,T 可以是 const char*、std::string 或 std::vector<unsigned char>;SA 可以是 int* 或 std::vector<long>。 k = 256 的默认参数,表明它默认处理的是8位字符(如ASCII, UTF-8字节流)的字符串。 参...
构建基于Hexo、Butterfly、GitHub与Cloudflare的高性能个人博客
[toc] 构建基于Hexo、Butterfly、GitHub与Cloudflare的高性能个人博客 1. 引言本文旨在提供一个详尽、分步骤的技术指南,用于构建一个集现代化、高性能与功能丰富于一体的个人博客系统。该方案以静态站点生成器Hexo为核心,选用功能强大且美观的Butterfly主题,利用GitHub Pages进行版本控制与基础托管,并通过Cloudflare的服务实现全球CDN加速、自定义域名解析与静态站点部署。此外,文章还将深入探讨一系列插件的集成与优化,涵盖网站分析、用户交互、内容优化及搜索引擎收录等多个维度。 1234567891011graph TD A[本地环境: Hexo] --> B(生成静态文件); B --> C[版本控制: Git]; C --> D[代码托管: GitHub Repository]; D --> E{部署方案}; E --> F[方案一: GitHub Pages]; E --> G[方案二: Cloudflare Pages]; ...
测试效果
默认 提示块标签 default 提示块标签 primary 提示块标签 success 提示块标签 info 提示块标签 warning 提示块标签 danger 提示块标签 [{"url":"https://i.loli.net/2021/03/19/5M4jUB3ynq7ePgw.png","alt":"","title":""}] [{"url":"https://i.loli.net/2021/03/19/5M4jUB3ynq7ePgw.png","alt":"","title":""},{"url":"https://i.loli.net/2021/03/19/5M4jUB3ynq7ePgw.png","alt":"","title":""},{"url":"https://i.loli.net/2021/03/19/5M4jUB3ynq7ePgw.png","alt":"","title":""},{"url":"https://i.loli.net/2021/03/19/5M4jUB3ynq7ePgw.png...
《RT-Thread与STM32CubeMX深度整合实战:嵌入式开发配置陷阱与性能优化全解析》 —— 从SConscript管理到时钟同步,构建高效嵌入式系统的避坑指南
@[toc] 参考这博客进行了配置:https://blog.csdn.net/qq_45396672/article/details/118076336没有跟这样一步步来,发现了几个坑 工程配置优化指南一、关键配置陷阱与解决方案1. SConscript文件同步异常现象CubeMX生成外设驱动未自动同步至工程 本质原因构建系统未正确识别CubeMX输出路径 修正方案 123456789# 修改applications/SConscriptImport('RTT_ROOT')group = DefineGroup('HAL_Drivers', src = [ 'Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c', 'Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c' ], depend = [''])Return(...
RT-Thread 使用设备驱动框架 驱动看门狗例程中 MSH命令后提示“find iwg failed“”解决办法
@[toc] 太长不看版:修改这几行代码为下面这些 123#define IWDG_DEVICE_NAME "wdt" /* 看门狗设备名称 */ rt_uint32_t timeout = 10; /* 溢出时间 */ 代码参考 https://www.rt-thread.org/document/api/iwdg_sample_8c-example.html 下面是官方例程中的代码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768/* * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes...
ADC+DMA 目标数组无更新 解决办法
@[toc] 代码结构优化12345678910111213141516171819202122/* USER CODE BEGIN Header *//** ****************************************************************************** * @file : adc_dma.c * @brief : ADC with DMA implementation for STM32F7 series ****************************************************************************** * @attention * - STM32F7 L1-cache注意事项: * - 开启D-cache会导致DMA数据不更新 * - 解决方案: * - 使用DTCM内存(0x20000000) * - 手动维护cache一致性(SCB_InvalidateDCache_...
HAL_DMA_ERROR_FE错误代码解决方法
[toc] 错误场景: 使用STM32F7芯片 使用CUBE生成配置 使用如下链接代码 https://download.csdn.net/download/qq_39665253/77125064 具体为DMA+USART+FIFO(软件编写)+双串口。将接受到的数据发送回串口助手中。 表面上看收发正常。实际应用时(MODBUS多从机应用),总会丢失数据。debug看串口错误中断,发现EeeoreCode错误代码为10如何定位进入错误中断前的代码,看下面链接 https://blog.csdn.net/u013181595/article/details/69523331 定位进入错误中断代码,可找到这段代码。即进入了FIFO错误中断了观察CUEB串口设置,并没有使用FIFO。 CUBE生成代...
ISO 14229 (Unified Diagnostic Services, UDS) 诊断工具实现(can_uds)
@[toc] 介绍 本软件包在 RT-Thread 上实现 ISO 14229(UDS)协议栈及典型服务端示例,并配套 SocketCAN 客户端,覆盖会话控制、安全访问、参数读写、通信控制、IO 控制、远程控制台、文件传输等核心诊断能力,面向汽车电子与工业控制场景的远程诊断、运维和固件分发需求。 链接: iso14229 rtt software 历史与背景 诞生动机:典型整机通常只有一个 CAN 接口对外,而内部往往存在多个 MCU 子节点。惯用的串口 Debug 控制台在售后排查阶段接线和调试成本高。通过在 CAN 上提供标准 UDS 诊断与控制台能力,可复用现有 CAN 口完成日志、调试与控制权接管,降低现场维护难度。 重要里程碑:覆盖 ISO 14229 主流服务(0x10/0x11/0x22/0x27/0x28/0x2E/0x2F/0x31/0x34/0x36/0x37/0x38/0x3E),提供 RT-Thread 服务端示例、服务注册框架...
【ARM V6编译器 编译汇编代码出错解决办法】
@[toc] https://www.cnblogs.com/pengdonglin137/p/3603166.html看着办 12345678910111213141516171819202122232425262728293031323334//THUMB指令不支持汇编内联//采用如下方法实现执行汇编指令WFI void WFI_SET(void){ asm("WFI"); }//关闭所有中断(但是不包括fault和NMI中断)void INTX_DISABLE(void){ asm ( "CPSID I" "BX LR" );}//开启所有中断void INTX_ENABLE(void){ asm ( "CPSIE I" "BX LR " );}//设置栈顶地址//addr:栈顶地址void MSR_MSP(u32 addr) {...
CUBE 配置SDRAM 无法选择地址问题解决办法
@[toc] 如图所示:地址没有办法选择这个时候一般是需要选择的引脚已经被使用导致的。我这里是PF12被使用为其他功能导致不可填写地址取消之后既可使用 SDRAM具体配置具体要使用哪些引脚。一个办法是新建一个CUBE工程,配置后查看哪些引脚被使用。另一个直接查看别人生成好的代码中运用了哪些引脚 1234567891011121314151617181920212223242526272829303132void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef *hsdram){ GPIO_InitTypeDef GPIO_Initure; __HAL_RCC_FMC_CLK_ENABLE(); //使能FMC时钟 __HAL_RCC_GPIOC_CLK_ENABLE(); //使能GPIOC时钟 __HAL_RCC_GPIOD_CLK_ENABLE(); //使能GPIOD时钟 __HAL_RCC_GPIOE_C...







