自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

产品线负责人

十年硬件产品人,兼具产品和技术,实战指导。

  • 博客(28)
  • 资源 (21)
  • 收藏
  • 关注

原创 【IoT】STM32 字节对齐 #pragma pack

1、对齐原则min(sizeof(word ), 4) = 2,因此是 2 字节对齐,而不是我们认为的 4 字节对齐。1)每个成员分别按自己的方式对齐,并能最小化长度;2)复杂类型(如结构)的默认对齐方式是它最长的成员的对齐方式,这样在成员是复杂类型时,可以最小化长度;3)对齐后的结构体整体长度必须是成员中最大的对齐参数的整数倍,这样在处理数组时可以保证每一项都边界对齐。对于数...

2019-03-29 19:14:51 1583

原创 【IoT】STM32 启动代码分析详解

1、堆栈存储器堆栈存储区是在片上存储器中的SRAM(或RAM)中由用户自行开辟的一片数据存储区域,并且堆栈区的大小可根据用户的需要任意指定(只要不超过SRAM或RAM的大小),而堆栈区的位置由编译器指定分配。Cortex-M3/M4处理器的堆栈指针SP是“满递减,空递增”,呈现向下逆生长的特点。堆栈区数据的存储特点是“先进后出,后进先出”。这种特点是由堆栈指针的移动方式决定的,...

2019-03-28 08:53:52 1532

原创 【IoT】STM32 启动代码汇编指令详解

● EQU伪指令EQU用来为一个数字常量或一个和内核寄存器相关的数值或一个和程序计数器相关的数值定义的一个符号名称,类似于C语言中的"#define"。语法格式:name EQU expr{ , type}注意:语法格式中的{ }不属于语法格式的部分,并且{ }中的内容是可选的;name:数值(expr)的符号名称;expr:一个与内核寄存器相关的地址,或一个绝对地址,或...

2019-03-27 09:24:25 2349 1

转载 【IoT】STM32 启动代码 __main 与用户主程序 main() 的区别

1、__main 作用__main函数是C/C++运行时库的一个函数,嵌入式系统在进入应用主程序之前必须有一个初始化的过程,使用__main标号引导系统时必须将应用程序的入口定义为main()。 在初始化的过程中,__main函数的作用主要有两点:1) 完成对映像文件的初始化操作a、映像文件链接器把多个目标文件链接成一个映像文件。b、加载地址和执行地址映像文件可以...

2019-03-27 09:06:37 4851

原创 嵌入式驱动源代码(4):STM32 分散加载文件 .sct 解析

1、STM32 启动文件与 .sct 文件分析1) 定义STACK段,{NOINIT,读写}:分配一段内存大小为0.5K;2) 定义HEAP段, {NOINIT,读写}:分配一段内存大小为1K;3) 定义RESET段,{DATA,只读}:DCD各种中断向量;4) 定义|.text|段,{CODE,只读}:Reset_Handler函数,函数中最后加载了__main;对剩余的中断...

2019-03-27 08:55:52 4855 2

转载 【IoT】HUAWEI LiteOS 内存管理解析

1、liteos 内存管理源码以及架构分析对于操作系统来说主要有如下基础模块:1)内存管理,任务调度,任务之间的通信和互斥,这几个是一个操作系统最核心的模块;2)其次比较重要的就是文件系统,网络协议栈等一些比较重要的模块;3)再下来就是操作系统根据各种类型的设备定义的一些驱动的框架,比如字符设备,块设备,等各种类型的设备的管理框架;4)再具体下来就是具体的设备驱动程序这些是和具...

2019-03-26 19:28:58 2172

转载 【IoT】HUAWEI LiteOS 启动流程

1、liteos 目前支持多款平台具体支持的平台在目录:\LiteOS-master\targets,以 STM32F103RB_NUCLEO 为例。其入口函数在 \LiteOS-master\targets\STM32F103RB_NUCLEO\GCC\los_startup_gcc.s 中的 Reset_Handler入口函数:Reset_Handler: #设定栈指...

2019-03-26 19:26:15 2940

原创 【IoT】STM32Fxxx 上移植 Huawei LiteOS

1、LiteOS 简介华为的 LiteOS 以轻量级(内核小于10k)、低功耗(1节5号电池最多可以工作5年),快速启动,互联互通,安全等关键能力,为开发者提供 "一站式" 完整软件平台,有效降低开发门槛、缩短开发周期。华为提出 1+2+1战略,即一个物联网操作系统,两种接入方式,一个平台,从而实现其使能万物智能的目标。示意图如下:操作系统特点及框架如下图所示:2、建立...

2019-03-26 09:49:03 2718 1

原创 嵌入式驱动源代码(17):STM32 位域与联合体结合优化操作

1、位域详细介绍参考文章:位域位域可以实现在信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几 个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序...

2019-03-26 08:59:28 3651 1

转载 【IoT】STM32 结构体位域操作 (int a:4)

1、什么是位域有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如:在存放一个开关量时,只有 0 和 1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几 个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。...

2019-03-25 19:24:48 4524

原创 【IoT】STM32 FLASH 掉电数据丢失处理策略以及备份机制

1、原因由于FLASH的擦除和写入的特性,如果在擦除中掉电或者写入时掉电,有可能会出现失败的情况,下次再上电读取就会出错。擦除的时候掉电,不能保证擦除完全,但是已经擦除的部分,肯定是0xff了。写的时候掉电,已经写入的就是正确的,电平掉到最低极限工作电压附近时,写入的就无法保证了,地址无法保证,写入的值也无法保证。没有写到的,肯定还是 0xFF。  2、解决方式2.1、硬件方式...

2019-03-23 17:43:10 13251 2

原创 【IoT】STM32 Flash 均衡保存算法

在实际应用中,经常需要在程序运行过程中保存或读取一些数据,这些数据在工作中经常会变化,而且掉电后也不能丢失,所以需要及时地进行存储,存储这些数据常用的存储器是 EEPROM。STM32 虽然本身不带 EEPROM,但是它支持自编程技术,可以利用内部 FLASH 来模拟 EEPROM,这样不仅简化了设计,而且降低了成本。FLASH 的擦写次数是有限的,一般是 10W 次, FLASH 单个存...

2019-03-23 12:36:04 4398 1

转载 【IoT】CC254X 片上 flash 读写操作解析

在开发中,希望数据掉电不丢失,有两种方法:1)通过 I2C 或者 SPI 总线外接存储,比如 E2PROM 或 FLASH;2)操作片上 flash。要想操作片上 flash,首先要搞清楚片上 flash 的存储结构以及寻址方式。例如:CC2541F256 这个芯片,我们查一下技术手册,介绍片上 flash 存储组织结构的部分如下:梳理如下:1)内部 flash 由...

2019-03-21 08:57:57 1153

原创 【IoT】STM32 查看 FLASH 和 RAM 使用情况(RO-data、RW-data、ZI-data)

1、KEIL MDK 编译后的信息Code=86496 RO-data=9064 RW-data=1452 ZI-data=161161)Code 是代码占用的空间;2)RO-data 是 Read Only 只读常量的大小,如const型;3)RW-data 是(Read Write)初始化了的可读写变量的大小;4)ZI-data 是(Zero Initialize) 没有...

2019-03-20 09:24:41 4212

原创 【IoT】STM32 编译结果 map 之 code、RO-data、RW-data、ZI-data 字段解析

1、Code即代码域,它指的是编译器生成的机器指令,这些内容被存储到ROM区。2、RO-dataRead Only data,即只读数据域,它指程序中用到的只读数据,这些数据被存储在ROM区,因而程序不能修改其内容。例如:C语言中const关键字定义的变量就是典型的RO-data。3、RW-dataRead Write data,即可读写数据域,它指初始化为“非0值”的...

2019-03-19 19:06:22 1599

原创 嵌入式驱动源代码(5):STM32 文件系统 fatfs 移植笔记详解

1、内存和Flash介绍stm32 的 flash 地址起始于 0x0800 0000,结束地址是 0x0800 0000 加上芯片实际的 flash 大小,不同的芯片 flash 大小不同。RAM 起始地址是 0x2000 0000,结束地址是 0x2000 0000 加上芯片的 RAM 大小,不同的芯片RAM也不同。Flash 中的内容一般用来存储代码和一些定义为 const 的数...

2019-03-19 18:52:04 4266 1

原创 嵌入式驱动源代码(3):STM32 内存分配详解

1、KEIL 编译后数据codeRO-dataRW-dataZI-dataflash 实际存储数据2、内存段bss 段、data段、text段、堆(heap)和栈(stack)。2.1、bss 段bss 段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域;bss 是英文Block Started by Symbol的简称;bss...

2019-03-14 08:51:48 3538 1

原创 【Tool】ELF 和 AXF 文件分析详解

ELF(Executable and Linking Format)是一个定义了目标文件内部信息如何组成和组织的文件格式。内核会根据这些信息加载可执行文件,内核根据这些信息可以知道从文件哪里获取代码,从哪里获取初始化数据,在哪里应该加载共享库等信息。栈的地址是向下生长,堆的地址是向上生长:1、ELF 文件类型ELF 文件有下面三种类型:1)目标文件$ gcc -c ...

2019-03-13 09:37:09 5625

原创 【Tool】readelf 命令读取 STM32 编译生成的 ELF 和 AXF 文件

1、概述readelf 命令,一般用于查看 ELF 格式的文件信息,常见的文件如在Linux上的可执行文件,动态库(*.so)或者静态库(*.a)等包含ELF格式的文件。可以在 windows 命令行或 Git bash 上查看。2、readelf 常用命令语法:readelf (选项)(参数:文件),除了-v和-H之外,其它的选项必须有一个被指定参数。Usage: rea...

2019-03-13 08:53:53 1817

转载 【IoT】FreeRTOS 进阶:如何移植 freeRTOS 到 STM32 Cortex-M3

1、FreeRTOS 文件结构下载包根目录下包含两个子目录:FreeRTOS 和 FreeRTOS-Plus。其中,FreeRTOS-Plus 文件夹中包含一些 FreeRTOS+ 组件和演示例程,重点说一下 FreeRTOS 文件夹。FreeRTOS 文件夹下包含两个子目录:Demo 和 Source。其中,Demo 包含演示例程的工程文件,Source 包含实时操作系统...

2019-03-07 17:03:59 1288

转载 【IoT】STM32Cube 工具说明和安装浅析

1、STM32CubeMX 简介说明STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用。STM32CubeMX几乎覆盖了STM32 全系列芯片。它具有如下特性:1)直观的选择MCU 型号,可指定系列、封装、外设数量等条件;2)微控制器图形化配置;3)自动处理...

2019-03-07 14:39:27 1022

原创 【IoT】CC254x 中 data、idata、xdata 和 pdata 区别以及堆 Heap 内存布局

1、data、idata、xdata 和 pdata 区别从数据存储类型来说,8051 系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型。使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型,这样将有利于提高程序执行效率(此...

2019-03-05 14:36:47 5548 1

原创 【IoT】ROM、RAM 和 FLASH 浅析

1、ROM、RAM 和 FLASH 应用1)ROM存储固化程序的,存放指令代码和一些固定数值,程序运行后不可改动。c文件及h文件中所有代码、全局变量、局部变量、'const'限定符定义的常量数据、startup.asm文件中的代码(类似ARM中的bootloader或者X86中的BIOS,一些低端的单片机是没有这个的)通通都存储在ROM中。2)RAM程序运行中数据的随机存取...

2019-03-05 14:21:27 1629

转载 【IoT】Android 各版本对 BLE 兼容支持汇总

1、Android 8.1/9在屏幕关闭之后,扫描会被暂停,如果需要在屏幕被关闭之后还继续进行扫描的话,需要在扫描配置那里,加入一个空的过滤器。如下:List<ScanFilter> filters = Collections.singletonList(new Builder().build());2、Android 8.0新的扫描方法,可以通过外设保活,http...

2019-03-05 14:04:40 3664

转载 【IoT】FATFS 文件系统 SPI 方式移植

1、FATFS 简介FatFs Module是一种完全免费开源的FAT文件系统模块,专门为小型的嵌入式系统而设计。完全用标准C语言编写,所以具有良好的硬件平台立性,只需要简单修改就可以移植到8051、PIC、AVR、SH、Z80、H8、ARM等系列嵌入式设备。支持FATl2、FATl6和FAT32,支持多个存储媒介、有独立的缓冲区,可以对多个文件进行读/写,并特别对8位单片机和16位单...

2019-03-04 15:18:32 1235

转载 【IoT】SPIFFS 文件系统解析

1、SPIFFSSPIFFSSPIFFS的设计灵感来源于YAFFS。YAFFS文件系统是专门为NAND闪存而设计的,需要耗费更多的RAM,SPIFFS文件系统很多方法是从YAFFS借鉴的。SPIFFS文件系统不假设目标系统具有Heap堆内存的能力,SPIFFS只需要一定的工作RAM缓冲区即可,这让它可以适用于更多的地方。2、使用 NOR 技术的 SPI 闪存设备以下是SPI...

2019-03-04 14:24:25 5558

转载 【IoT】Huawei LiteOS 支持 FatFs 的移植

1、FsFs(File system文件系统)是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。2、FatFsFatFs是一个为小型嵌入式系统设计的通用FAT(File Allocation Table)文件系统模块,它完全免费开源,具有以下特...

2019-03-04 10:21:06 1681

原创 市场竞争力法则:以小博大,虽败犹荣

1、为什么要谈商业竞争最近半年写的文章大多与《遥远的救世主》这本书有关,缘起在于它带给人太多的震撼与思考。书中关于商业竞争的描述尤为精彩,2010年开启的“3Q大战”,无疑是这本书的现实演绎,以小博大,虽败犹荣。书中整个故事围绕着王庙村通过音响脱贫的故事展开,堪称扶贫“神话”。在研究王庙村的布局之前,丁元英收集了所有关于音响界的资料并加以分析,对音响界一哥乐圣公司情有独钟。经过一番...

2019-03-02 21:54:21 1464

IPD开发流程-发布及生命周期资料

01.1_IPD发布阶段-批量产品成本核算-维度.pdf" 02.1_IPD发布阶段-项目结项报告.pdf" 03.1_IPD发布阶段-产品包与产品包需求.pdf" 04.1_IPD发布阶段-量产认可.pdf" 05.0_IPD发布阶段-TR6评审要素表.xls" 06.0_IPD发布阶段-TR6评审报告-模板.pdf" 06.1_IPD生命周期阶段-活动说明.pdf" 07.1_IPD发布阶段-业务决策评审要素表-发布.pdf" 07.1_IPD生命周期阶段-流程介绍.pdf" 08.1_IPD生命周期阶段-从产品开发到产品上市的全生命周期管理.pdf" 09.1_IPD生命周期阶段-PDT团队KPI指标.pdf" 10.1_IPD发布阶段-项目团队内部经验总结-模板.pdf" 10.2_IPD发布阶段-最终项目内部总结报告-模板.pdf"

2024-08-20

IPD产品开发-验证阶段-资料包

\01.1_IPD验证阶段-产品成本核算表.xls" \02.1_IPD验证阶段-Bug分析报告-模板.pdf" \03.1_IPD验证阶段-电子产品故障排查手册.pdf" \04.1_IPD验证阶段-认证列表.pdf" \05.1_IPD验证阶段-版本测试报告-模板.pdf" \06.0_IPD验证阶段-系统测试报告-模板.pdf" \07.1_IPD验证阶段-BOM清单-模板.xlsx" \08.0_IPD验证阶段-Beta测试报告.pdf" \09.1_IPD验证阶段-中试测试报告-说明.pdf" \10.1_IPD验证阶段-量产批准评审表.xlsx" \11.1_IPD验证阶段-Bug 8D改善报告.xls" \12.0_IPD验证阶段-TR5评审要素表.pdf" \13.0_IPD验证阶段-TR5评审报告.pdf"

2024-08-20

IPD流程概念阶段资料包

01.1_IPD概念阶段-PDT项目任务书-模板.pdf" 01.2_IPD概念阶段-项目任务书一页纸-模板.pdf" 02.0_IPD概念阶段-产品包需求-模板.pdf" 03.1_IPD概念阶段-产品概念说明书-模板.pdf" 03.2_IPD概念阶段-技术方案选型.pdf" 04.1_IPD概念阶段-供应商及物料选择计划-模板.pdf" 05.1_IPD概念阶段-关键器件及模块选型方案-模板.pdf" 05.2_IPD概念阶段-电子元器件选型规范.pdf" 05.3_IPD概念阶段-电子元器件选型与可靠性应用.pdf" 06.1_IPD概念阶段-目标成本管理-规范.pdf" 07.1_IPD概念阶段-WBS分解指南.pdf" 09.1_IPD概念阶段-产品质量计划-模板.pdf" 10.0_IPD概念阶段-业务计划-模板.pdf" 11.0_IPD概念阶段-TR1评审要素表-模板.pdf" 12.0_IPD概念阶段-TR1评审报告-模板.pdf"

2024-07-22

IPD流程计划阶段资料包

涵盖资料: 01.1_IPD计划阶段-WBS分解指南.pdf" 02.1_IPD计划阶段-智能锁产品方案-参考.pdf" 03.1_IPD计划阶段-Build版本规划.pdf" 04.0_IPD计划阶段-硬件概要设计-模板.pdf" 05.0_IPD计划阶段-软件概要设计-模板.pdf" 06.1_IPD计划阶段-结构及工艺设计流程-案例.pdf" 07.0_IPD计划阶段-测试计划-模板.pdf" 08.1_IPD计划阶段-生产测试和工艺总体方案设计-模板.pdf" 09.1_IPD计划阶段-物料需求计划.xls" 10.0_IPD计划阶段-BOM清单-模板.xlsx" 11.0_IPD计划阶段-关键元器件采购清单-模板.xlsx" 12.0_IPD计划阶段-元器件认证标准-规范.pdf" 13.0_IPD计划阶段-产品质量计划优化-模板.pdf"

2024-07-19

IPD产品开发阶段流程图

详细介绍IPD产品开发阶段的主要流程。

2024-01-07

老化架及电流测试套装,主要用于硬件产品的生产测试

硬件产品生产测试资料: 1、搭建环境所需购买的物料,包括电流表、架子等 2、包含设计的PCB,方便组装测试

2023-05-31

产品开发与设计主流程文件包

内容涉及产品开发过程各个阶段的文件,包括概念阶段、计划阶段、开发阶段、验证阶段、发布阶段的全流程文档。 包含上百个文件,另外文件中还包括一系列的模板文件,可以供大家在产品开发过程中使用。 例如,华为研发流程-IPD详细操作流程活动说明、产品研发流程角色和职责说明、产品包需求评审要素表、需求跟踪表、研发支持流程任务申请表等等上百个文件。

2023-05-10

硬件产品:生产管理流程

主要介绍的是硬件产品的生产过程。 也就是SMT的过程,从芯片上机、AOI检测,到焊接,测试,组装等等环节。 如何设置环节的把控点,如何分配管理人员。 这个文件告诉你答案。

2023-04-23

软件加密+破解密码(参考对应文章说明)

支持文件夹简单加密,并提供破解方式。 破解说明参考改文章: https://pm-wsir.blog.csdn.net/article/details/130316354?spm=1001.2014.3001.5502

2023-04-23

wifi和NBIoT设计技术资料

NBIoT 技术详解,wifi 技术详解,BGN 原理详解,联网技术!

2019-09-10

wifi bgn.PNG

wifi 芯片之 CC3200 uniflash 手册说明,以及 wifi bgn 模式简介!

2019-09-10

cc3200 uniflash手册.rar

wifi 芯片之 CC3200 uniflash 手册说明,以及 wifi bgn 模式简介!

2019-09-10

CRC计算校验工具

该工具主要针对CRC计算,也包含CRC8的实例代码相关内容。

2019-01-30

Axure RP Pro_8.1

Axure RP Pro_8.1 破解,该工具直接解压即可使用,非常方便快捷的工具

2018-12-21

libnfc工具包和说明文档

该文档主要介绍 libnfc 的安装,并提供相应的文档资料。

2018-12-05

3DES加解密工具与CPU卡详细资料

3DES实用小工具用于加解密测试验证,cpu卡的详细介绍文档,中间包含详细的操作指令。

2018-11-20

产品经理手册

本文章主要讲解产品经理的职责,全面而且详细制定相关策略。

2018-09-11

FreeRTOS相关资料

FreeRTOS简单示例,和blog中得文章配套,同时又关于freeRTOS的文档介绍。

2018-09-11

Android测试数据调试工具Bus hound

bus hound 主要用于检测数据,更好的去调试问题,查看数据

2018-09-05

IoT产品定制小型操作系统

该文件主要针对51单片机定制小型操作系统,可以移植到其他系统平台。

2018-09-03

ESP32 BLE 测试 APK

该文件主要是配合博客中的实例测试使用,可以实现 ESP32 与 APK 的通信;

2018-07-07

msp430-flasher

详细介绍了如何通过 msp430 flasher 烧写固件代码,主要是通过命令行方式;

2018-04-15

MSP430Flasher

用于命令行模式烧写msp43器件,用于批量化生产,需要配合msp430.dll库文件,在后面资源;

2018-04-15

stm32 I2C主从机模式控制代码

stm32 I2C主从机模式控制代码,实现硬件I2C的主从机控制。

2018-02-23

tags &&cscope

bash tags,搜索代码方便

2016-05-25

cscope脚本

源码目录执行bash mk_cscope, 搜索代码方便

2016-05-25

android框架

android框架

2016-05-25

音视频采集系统

基于ARM的音视频开发,应用PLC技术

2016-04-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除