有没有免费做企业网站的荥阳市建设局 网站

张小明 2026/1/13 6:54:08
有没有免费做企业网站的,荥阳市建设局 网站,wordpress菜单分级,提高网站可用性的策略有哪些基于STM32F103的CAN bootload程序源码#xff0c;包含boot和app两个工程#xff0c;已应用到实际项目并量产最近在量产一款工业控制器时遇到了头疼的问题——产品装到现场后发现程序有bug咋升级#xff1f;总不能每次都拆下来用ST-Link烧录吧#xff1f;这时候CAN总线Bootl…基于STM32F103的CAN bootload程序源码包含boot和app两个工程已应用到实际项目并量产最近在量产一款工业控制器时遇到了头疼的问题——产品装到现场后发现程序有bug咋升级总不能每次都拆下来用ST-Link烧录吧这时候CAN总线Bootloader就成了救命稻草。今天就跟大伙儿聊聊我们项目中实际使用的STM32F103双工程方案源码在文末自取。先上硬菜boot工程的核心跳转逻辑//boot_main.c关键片段 if(Check_JumpToApp() VALID_APP_FLAG) { __disable_irq(); __set_MSP(*(__IO uint32_t*)APP_ADDRESS); /* 重设中断向量表 */ SCB-VTOR APP_ADDRESS 0x1FFFFF80; /* 函数指针跳转 */ uint32_t app_reset *(__IO uint32_t*)(APP_ADDRESS 4); ((void (*)(void))app_reset)(); }这段代码里有个骚操作——SCB-VTOR寄存器设置。很多兄弟的Bootloader跑着跑着进APP就死机八成是忘了这茬。STM32的中断向量表默认在0x08000000APP工程必须修改自己的中断偏移量//APP工程的system_stm32f1xx.c中 #define VECT_TAB_OFFSET 0x8000 //假设bootloader占32KB硬件抽象层才是魔鬼细节。我们的CAN配置里藏了个超时机制防止升级过程卡死//CAN初始化片段 hcan.Instance-MCR | CAN_MCR_INRQ; while(!(hcan.Instance-MSR CAN_MSR_INAK)) { if((HAL_GetTick() - startTick) 100) { //超时自重启 NVIC_SystemReset(); } }实测发现某些国产CAN芯片初始化时会卡INRQ标志这个超时重启能让设备在异常时自动恢复避免变砖。后来产线反馈升级成功率从87%直接飙到99.8%这行代码值回票价。量产时还踩过一个大坑APP工程的bin文件必须带CRC校验。我们的方案是在生成hex后自动添加校验尾arm-none-eabi-objcopy -O binary app.ax7 app.bin crc32 app.bin app.binBootloader端验证时这么玩uint32_t fileCRC *(__IO uint32_t*)(flashAddr fileSize - 4); if(HAL_CRC_Calculate(hcrc, flashAddr, fileSize-4) ! fileCRC) { //校验失败重传 Send_Nak(CAN_ERR_CRC); }有次产线工人误用了旧版本bin文件结果设备自动识别校验失败避免了整批返工。厂长听说后给项目组加了个鸡腿这波不亏。代码仓库里还有个骚操作——boot和app共用同一套硬件驱动。通过条件编译实现资源复用//hal_can.h #ifdef BOOTLOADER #define CAN_TX_MSG_ID 0x321 #else #define CAN_TX_MSG_ID 0x322 #endif最后给个忠告量产项目千万别用库函数擦写Flash我们最早版本用HALFLASHProgram写死的升级包结果有次断电导致设备变砖。后来切到底层寄存器操作才稳如老狗//Flash写入关键操作 FLASH-CR | FLASH_CR_PG; *(__IO uint16_t*)address data; while(!(FLASH-SR FLASH_SR_EOP)); FLASH-SR FLASH_SR_EOP;源码已脱敏上传GitHub搜索Stm32f103-can-bootloader就能找到。下期打算聊聊如何在Bootloader里集成AES128加密防止现场被逆向——有次竞品公司买我们的设备直接dump固件把老子吓出一身冷汗...此处应有后怕表情
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

软件开发工资多少semseo是什么意思

理解 Go 语言中的字符串、字节与符文 📖 引言 我们之前的博文详细解释了 Go 语言切片的工作原理,并辅以大量示例阐明了其实现机制。在此背景下,本文将深入探讨 Go 语言中的字符串。乍一看,字符串似乎是一个过于简单的话题&#…

张小明 2026/1/3 1:37:29 网站建设

网站后台管理方便吗做微视频的网站

Font Manager:终极字体管理解决方案,让设计工作更高效! 【免费下载链接】font-manager 项目地址: https://gitcode.com/gh_mirrors/fo/font-manager 还在为海量字体资源管理而头疼吗?Font Manager作为一款专为现代桌面环境…

张小明 2026/1/2 10:50:11 网站建设

厦门专业建网站电销卡代理加盟

Bash 高级特性与技巧深度解析 分组命令与子shell Bash 允许将命令分组,有两种方式可以实现:分组命令和子 shell。下面是它们的语法示例: - 分组命令 : { command1; command2; [command3; ...] }子 shell : (command1; command2; [command3;...])两者的区别在于,分…

张小明 2026/1/3 3:12:23 网站建设

手机免费制作网站免费建社交网站

FLUX.1-dev FP8量化模型:6GB显存畅享AI绘画新体验 【免费下载链接】flux1-dev 项目地址: https://ai.gitcode.com/hf_mirrors/Comfy-Org/flux1-dev 还在为显卡配置不足而无法体验AI绘画的魅力感到遗憾吗?FLUX.1-dev FP8量化版本的出现彻底改变了…

张小明 2026/1/3 16:01:51 网站建设

微信网站搭建教程微信小程序开发零基础入门

视频压缩是数字视频技术的核心组成部分,其主要目标是在保持可接受的视觉质量的前提下,大幅减少视频数据量。未压缩的视频数据量巨大,难以存储和传输。视频压缩算法通过识别并消除视频数据中的冗余信息来实现这一目标。这些冗余主要分为三类&a…

张小明 2026/1/4 6:01:35 网站建设