https://blog.csdn.net/qq_33114231/article/details/78658465

 

stm32的存储器结构

2017年11月28日 19:38:59 白小白ani 阅读数:951

 

首先,先看一下stm32的存储器结构。

​Flash,SRAM寄存器和输入输出端口被组织在同一个4GB的线性地址空间内。可访问的存储器空间被分成8个主要块,每个块为512MB。FLASH存储下载的程序,FLASH是ROM的一种。SRAM是存储运行程序中的数据,SRAM是RAM的一种。所以,只要你不外扩存储器,写完的程序中的所有东西也就会出现在这两个存储器中。

 

1.     STM32中的堆栈。

        首先要说明的是单片机是一种集成电路芯片,集成CPU、RAM、ROM、多种I/O口和中断系统、定时器/计数器等功能。CPU中包括了各种总线电路,计算电路,逻辑电路,还有各种寄存器。Stm32有通用寄存器R0‐R15 以及一些特殊功能寄存器,其中包括了堆栈指针寄存器。当stm32正常运行程序的时候,来了一个中断,CPU就需要将寄存器中的值压栈到RAM里,然后将数据所在的地址存放在堆栈寄存器中。等中断处理完成退出时,再将数据出栈到之前的寄存器中,这个在C语言里是自动完成的。

 

 

2.     STM32的堆栈大小

 定义大小在startup_stm32f2xx.s

Stack_Size      EQU     0x00000400

                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp


; <h> Heap Configuration
;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Heap_Size       EQU     0x00000200

                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base

 

 

3.     STM32的堆栈位置

 

通过MAP文件可知(在目标工程栏-->>双击工程名,就会在keil文件显示框出现map文件)

 

 HEAP                                     0x200106f8   Section      512  startup_stm32f2xx.o(HEAP)
 STACK                                   0x200108f8   Section     1024  startup_stm32f2xx.o(STACK)

 __heap_base                         0x200106f8   Data           0  startup_stm32f2xx.o(HEAP)
 __heap_limit                           0x200108f8   Data           0  startup_stm32f2xx.o(HEAP)
 __initial_sp                             0x20010cf8   Data           0  startup_stm32f2xx.o(STACK)

 

         显然 Cortex-m3资料可知:__initial_sp是堆栈指针,它就是FLASH的0x8000000地址前面4个字节(它根据堆栈大小,由编译器自动生成)显然堆和栈是相邻的。

 

4.     STM32的堆和栈的空间分配

 

栈:向低地址扩展

 

堆:向高地址扩展

 

显然如果依次定义变量

 

先定义的栈变量的内存地址比后定义的栈变量的内存地址要大

 

先定义的堆变量的内存地址比后定义的堆变量的内存地址要小 

 

 

5.     编程中的堆栈。

在编程中很多时候会提到堆栈这个东西,准确的说这个就是RAM中的一个区域。我们先来了解几个说明:

(1) 程序中的所有内容最终只会出现在flash,ram里(不外扩)。

(2) 段的划分,是将类似数据种类存储在一个区域里,方便管理,但正如上面所说,不管什么段的数据,都是最终在flash和ram里面。

重点分析一下STM32以及在MDK里面段的划分。

MDK下Code,RO-data,RW-data,ZI-data这几个段:

Code是存储程序代码的。

​RO-data是存储const常量和指令。

​RW-data是存储初始化值不为0的全局变量。

​ZI-data是存储未初始化的全局变量或初始化值为0的全局变量。

Flash=Code + RO-Data + RW-Data;

RAM= RW-data+ZI-data;

        这个是MDK编译之后能够得到的每个段的大小,也就能得到占用相应的FLASH和RAM的大小,但是还有两个数据段也会占用RAM,但是是在程序运行的时候,才会占用,那就是堆和栈。在stm32的启动文件.s文件里面,就有堆栈的设置,其实这个堆栈的内存占用就是在上面RAM分配给RW-data+ZI-data之后的地址开始分配的。

这里为什么在FLASH中加了RW-Data还要在RAM中加上呢,原因是在初始化时RW-data从flash拷贝到RAM中,掉电后数据依然是在FLASH中的。

 

堆:是编译器调用动态内存分配的内存区域。

栈:是程序运行的时候局部变量的地方,所以局部变量用数组太大了都有可能造成栈溢出。

        堆栈的大小在编译器编译之后是不知道的,只有运行的时候才知道,所以需要注意一点,就是别造成堆栈溢出了。。。不然就等着hardfault找你吧。

 

举例:

 

Flash=4164+336+56=0x11CC

RAM=56+1832=0x760

那么:堆栈指针指向的位置就是0x20000760

 

6.     OS中的堆栈及其内存管理。

        嵌入式系统的堆栈,不管是用什么方法来得到内存,感觉他的方式都和编程中的堆差不多。目前我知道两种获得内存情况:

(1)用庞大的全局变量数组来圈住一块内存,然后将这个内存拿来进行内存管理和分配。这种情况下,堆栈占用的内存就是上面说的:如果没有初始化数组,或者数组的初始化值为0,堆栈就是占用的RAM的ZI-data部分;如果数组初始化值不为0,堆栈就占用的RAM的RW-data部分。这种方式的好处是容易从逻辑上知道数据的来由和去向。

(2)​就是把编译器没有用掉的RAM部分拿来做内存分配,也就是除掉RW-data+ZI-data+编译器堆+编译器栈后剩下的RAM内存中的一部分或者全部进行内存管理和分配。这样的情况下就只需要知道内存剩下部分的首地址和内存的尾地址,然后要用多少内存,就用首地址开始挖,做一个链表,把内存获取和释放相关信息链接起来,就能及时的对内存进行管理了。内存管理的算法多种多样,不详说,这样的情况下:OS的内存分配和自身局部变量或者全局变量不冲突,之前我就在这上面纠结了很久,以为函数里面的变量也是从系统的动态内存中得来的。这种方式感觉更加能够明白自己地址的开始和结束。

这两种方法我感觉没有谁更高明,因为只是一个内存的获取方式,高明的在于内存的管理和分配。

 

 

7.     STM32的堆栈生长方向和存储模式。

大端格式(Big-endian)

小端格式(Little-endian)

数据0x12345678存储格式

      大端格式

低地址<----0x12|0x34|0x56|0x78---->高地址

      小端格式

低地址<----0x78|0x56|0x34|0x12---->高地址

stm32是向下生长,采用的是小端存储。

 

 

 

发表评论

添加代码片

  • HTML/XML
  • objective-c
  • Ruby
  • PHP
  • C
  • C++
  • JavaScript
  • Python
  • Java
  • CSS
  • SQL
  • 其它

还能输入1000个字符

STM32F1(Cortex M3内核)存储器映射

06-20 阅读数 3418

Cortexm3内核规定的存储器映射如下图所示。就好像ARM公司打造了一个柜子,从上到下有这几个抽屉,它规定了每个抽屉放的东西的种类,具体放什么放多少它不管(只要不超过抽屉的大小),由每个芯片厂商自己... 博文来自: fantastikman的博客

教你如何使用stm32发送一帧数据(结构体中的数据)

01-25 阅读数 4712

在这篇文章中我介绍一下如何通过串口发送一帧存在结构体中的数据。通过串口接受一帧数据请参考的我博客中的文章——教你如何使用stm32接收一帧数据!一:在.h首先定义一个结构体。typedefstruct... 博文来自: 朱越奇的博客

STM32用到的几种存储器

07-27 阅读数 608

24c02是EEPROMW25Q64是FLASHIS62WV51216是SRAMFLASH:单片机运行的程序存储的地方。SRAM:存储单片机运行过程中产生的了临时数据。 EEPROM:视用户的需要而定... 博文来自: doudoududu1314的博客

 

 

STM32F1学习-深入理解存储器存储器映射以及bit-band)

07-19 阅读数 3877

STM32F1学习-深入理解存储器(存储器映射以及bit-band) 博文来自: 谦190的博客

STM32存储器

01-08 阅读数 498

STM32存储器一.存储器1.RAM,ROM,FLASHROM(ReadOnlyMemory)只读存储器和RAM(RandomAccessMemory)随机存储器都是半导体存储器。ROM掉电不丢失,R... 博文来自: 会写代码了不起啊

STM32存储架构

11-28 阅读数 750

也算一个STM32的初学者,看了一段时间的相关资料,将自已了解的知识写出来,以求备忘。在此文中若有错误之处,请指出,将不胜感激。 STM32F103ZET6是Cortex-M3内核的ARM类型的单片机... 博文来自: JCY博客

stm32存储结构& 存储器映射(整理)

05-24 阅读数 23

 问题:           1  什么是存储器映射?是怎么一个运作过程?          2  stm32总体架构          3 CM3内核结构 觉得下面这篇文章写得很精彩,转来收藏,和大... 博文来自: anlx27的专栏

哈佛结构&冯·诺依曼结构

12-15 阅读数 6701

哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独... 博文来自: 学海无涯,回头是岸........

每天用它泡着喝,排尽体内10年湿毒,健康又漂亮!神奇!成礼 · 鹓鶵

 

STM32内存的一点理解

02-13 阅读数 741

一个小的项目,在测试时间和产品量稍微大一些之后,出现了一些莫名其妙的非逻辑错误的Bug(最头疼的是不能每次都能复制出来)。经过修改后,最近一个月的测试都没有出现。本人在这里得到了原子哥和其他朋友的很多... 博文来自: Tex的博客

STM32内存管理以及堆和栈的理解

11-02 阅读数 1万+

今天仔细读了一下内存管理的代码,然后还有看了堆栈的相关知识,把以前不太明白的一些东西想通了,写下来,方便以后查看,也想大家看了能指出哪里不对,然后修改。    首先,先看一下stm32的存储器结构。​... 博文来自: 高原

echo_bright_关注

echo_bright_

 

218篇文章

排名:8000+

 

linglingzhan关注

linglingzhan

 

10篇文章

排名:千里之外

 

_业精于勤_关注

_业精于勤_

 

50篇文章

排名:千里之外

 

好好学习-忘掉一切关注

好好学习-忘掉一切

 

20篇文章

排名:千里之外

 

单片机的各种存储的含义和区别

09-28 阅读数 1769

闲着没事看看看STM32F4各种存储的发现内部flash好像是FMC的的地址,细看FMC的原理只能从各种存储开始看起了。先说STM32内部有的:我用的是F429实际上没有2MB是只有1MB的FLASH... 博文来自: yunpiao

大小端模式,stm32采用小端模式

07-19 阅读数 870

存储模式:小端:较高的有效字节存储在较高的存储器地址,较低的有效字节存储在较低的存储器地址。大端:较高的有效字节存储在较低的存储器地址,较低的有效字节存储在较高的存储器地址。 STM32属于小端模式,... 博文来自: ERTFYANG学习笔记

stm32内存空间分配

07-11 阅读数 382

stm32内存空间分配 博文来自: chengde6896383的专栏

湿气重只需喝它,排出体内十年全身湿气,健康又漂亮,神奇!成礼 · 鹓鶵

 

STM32片上FLASH内存映射、页面大小、寄存器映射

04-12 阅读数 5854

本文以STM32F103RBT6为例介绍了片上Flash(EmbeddedFlash)若干问题,包括Flash大小(内存映射)、块大小、页面大小、寄存器。这些知识,有利于写Flash驱动。一、怎么看F... 博文来自: 扫地僧

STM32存储器映射

10-16 阅读数 148

存储器映射是指把芯片中或芯片外的FLASH,RAM,外设,BOOT,BLOCK等进行统一编址。即用地址来表示对象。这个地址绝大多数是由厂家规定好的,用户只能用而不能改。用户只能在挂外部RAM或FLAS... 博文来自: 高原

STM32存储器映射详解

11-29 阅读数 319

存储器映射是指把芯片中或芯片外的FLASH,RAM,外设,BOOT,BLOCK等进行统一编址。即用地址来表示对象。这个地址绝大多数是由厂家规定好的,用户只能用而不能改。用户只能在挂外部RAM或FLAS... 博文来自: s111100930的专栏

STM32学习笔记(2):存储器映射和存储器重映射(Memory Map and Memory Remap)

04-13 阅读数 1597

“映射”一词首先是在数学中接触到的,在认识存储器映射或存储器重映射前先学习一下数学中对映射一词的解释。映射的定义:如果集合A中的每个元素在对应法则f的作用下,在集合B中都有唯一的一个元素与它对应,那么... 博文来自: Cacti_one的博客

关于单片机内存解释的整理

08-30 阅读数 875

单片机内存的合理使用对于一名嵌入式软件工程师来说是至关重要的,这深深关系到项目代码的稳定性。对于c语言程序的bug,最为致命、最难发觉的也是内存的使用不当造成的,这种奇葩现象。之前对这一块有过了解,可... 博文来自: sinat_30146065的博客

早晚喝点它,逼出体内十年湿气,越喝越漂亮!浩然川调 · 鹓鶵

 

STM32堆栈大小及位置

12-24 阅读数 4546

STM32的地址空间映射:首先STM32的堆栈是存放在片上静态SRAM中的,地址分配可以见Keil的编译map文件:HEAP 0x200106f8 Section 512 startup_stm32f... 博文来自: qlexcel的专栏

说说STM32的堆栈与内存

08-01 阅读数 1352

1.概念这里所说的堆栈,是针对单片机所说的“堆”与“栈”,指的是内存中一片特殊用途的区域。而不是数据结构中的堆栈(虽然其实规则一样)。这里所说的内存,是指RAM,RAM包括SRAM,DRAM等。而不是... 博文来自: wangzibigan的博客

stm32内存分配(全解释详细)

08-30 阅读数 327

(深入理解计算机系统)bss段,data段、text段、堆(heap)和栈(stack)https://www.cnblogs.com/yanghong-hnu/p/4705755.html STM3... 博文来自: gmq_syy的博客

[STM32]使用外部SRAM,MDK自动分配地址

05-25 阅读数 646

1.选中片外SRAM。2.修改分散加载文件,增加外部SRAM的标签。3.定义变量时,较大的数组使用标签定义在外部SRAM。4.查看MAP文件确认变量位置。... 博文来自: qq_29347269的博客

寄存器与存储器物理区别

11-07 阅读数 257

从根本上讲,寄存器与存储器RAM的元件不一样????寄存器存在于CPU中,速度很快,但是所占面积大,数目有限;存储器就是内存,速度稍慢,所占面积小,但数量很大;计算机做运算时,必须将数据读入寄存器才能... 博文来自: zashizhi3299的博客

早晚喝点它,逼出体内十年湿气,越喝越漂亮!浩然川调 · 鹓鶵

 

STM32F10XXX总线架构和存储器组织

10-19 阅读数 586

1.总线架构以互联网大容量产品为例,整体总线架构如下图:其中,DCode,也即D-bus,顾名思义就是数据总线。它通过总线矩阵连接Contex-M3和闪存存储器的数据接口,可用于常量加载(我的理解是R... 博文来自: linglingzhan的博客

stm32闪存的理解

10-12 阅读数 2009

STM32f1xxx的闪存模块由:主存储器、信息块和闪存存储器接口寄存器等3部分组成。各个部分的大小因不同型号有一定的差异,数据手册中可以看到 小容量产品主存储块1-32KB,每页1KB。系统存储器2... 博文来自: 业精于勤荒于嬉

STM32直接存储器访问DMA

07-22 阅读数 1276

第一次接触DMA是在学校学习ARM9裸板程序的时候,想起来都时隔快2年了。现在来看看STM32平台的DMA,一样,在标准外设库的支持下,STM32的DMA编程十分简单,但是既是学习,那还是花点时间看看... 博文来自: echo_bright_的博客

STM32学习之Flash(主存储块、系统存储器和选项字节)详解

06-27 阅读数 982

说到STM32的FLSAH,我们的第一反应是用来装程序的,实际上,STM32的片内FLASH不仅用来装程序,还用来装芯片配置、芯片ID、自举程序等等。当然,FLASH还可以用来装数据。    自己收集... 博文来自: 今生挚爱楠一人博客

stm32存储结构& 存储器映射

09-11 阅读数 420

问题:           1  什么是存储器映射?是怎么一个运作过程?          2  stm32总体架构          3 CM3内核结构1STM32系统结构    要想深刻理解STM... 博文来自: Zzzz_linux的博客

致力建立一个安全,干净的搜索环境搜索 · 顶新

 

stm32的体系架构

08-04 阅读数 4514

一.首先说说STM32F10x芯片由丝印所体现出的共同点和区别。 先简单说说命名规则: 101基本型,102USB基本型,103增强型,105或107互联型。 T:36脚,C:48脚,R:64脚,V:... 博文来自: qiaoyu5212的博客

STM32存储器结构&存储器映射

01-13 阅读数 128

问题:           1  什么是存储器映射?是怎么一个运作过程?          2  stm32总体架构          3 CM3内核结构 觉得下面这篇文章写得很精彩,转来收藏,和大家... 博文来自: zn2016的博客

STM32存储器结构

12-04 阅读数 216

NotesIntroduction本连载笔记,记录了在STM32学习中对存储器的理解;描述了STM32存储器的结构划分,以及STM32存储器相关知识,能够获得对存储器的整体性认识;并能够顺利的付诸实践... 博文来自: guosir_的博客

STM32学习:存储器组织

10-16 阅读数 126

一、存储结构  STM32F1有四种存储单元,依次是SRAM、Flash、FSMC和AHB到APB桥(挂载各种外设)。二、存储组织程序存储器、数据存储器、寄存器和输入输出端口被组织在同一个4GB的线性... 博文来自: wenlon7的博客

stm32中程序内存的理解和一些问题的解决

10-27 阅读数 3082

一个小的项目,在测试时间和产品量稍微大一些之后,出现了一些莫名其妙的非逻辑错误的Bug(最头疼的是不能每次都能复制出来)。经过修改后,最近一个月的测试都没有出现。本人在这里得到了原子哥和其他朋友的很多... 博文来自: weihaolu的博客

致力建立一个安全,干净的搜索环境搜索 · 顶新

 

跟着原子学习stm32之内存管理

04-08 阅读数 6890

学习stm32有2年的时间了,但是也只是有些基础的了解。为了深入的学习stm32应用,从新拿起原子写的《stm32开发指南》来深入的学习,所以这里太基本的东西不讲。文中有可能会搬一些原子大神的东西。另... 博文来自: a827415225的专栏

STM32之内存分布与总线

05-14 阅读数 1万+

1、总线系统结构系统包括一个由多个互相连接的32位AHB总线组成的矩阵8个主总线–Cortex-M4withFPUcoreI-bus,D-busandS-bus–DMA1memorybus–DMA2m... 博文来自: YellowMax

外部SRAM实验,让STM32的外部SRAM操作跟内部SRAM一样

01-23 阅读数 8977

转自原子论坛:http://www.openedv.com/thread-47895-1-1.html(出处:OpenEdv-开源电子网)前几天看到论坛有人在问这个问题,我特意去做了这个实验,这样用外... 博文来自: 东来东往

stm32内存空间分配学习

04-12 阅读数 1453

stm32内存空间分配学习 如图是一张stm32的内存映射图,其中代码区是从0x08000000开始的,他的结束地址是0x08000000加上实际芯片的flash大小,他的ram的起始地址是0x200... 博文来自: 扫地僧

ARM的存储器映射与存储器重映射

10-11 阅读数 1280

存储器映射是指把芯片中或芯片外的FLASH,RAM,外设等进行统一编址。即用地址来表示对象。这个地址绝大多数是由厂家规定好的,用户只能用而不能改。用户只能在挂外部RAM或FLASH的情况下可进行自定义... 博文来自: 如丧

 

boss好打随便浪,元宝装备随便爆,真传奇才真的过瘾!

 

 

stm32内存映射

07-01 阅读数 703

如图是一张stm32的内存映射图,其中代码区是从0x08000000开始的,他的结束地址是0x08000000加上实际芯片的flash大小,他的ram的起始地址是0x20000000,然后结束地址依然... 博文来自: qq_34888036的博客

STM32系统存储器启动模式——AN2606

03-14

STM32的ISP升级开发文档之一,说明了STM32各系列芯片Bootloader下的资源情况

下载

关于STM32存储器映像

04-13 阅读数 2711

1. 外设存储器映像外设的基地址:响应外设的存储器起始地址+地址偏移(参见STM32参考手册存储器影响部分和相应的外设存储器)2. SRAM    STM32F10xxx内置20K字节的静态SRAM。... 博文来自: dainifeixiang的专栏

STM32F10存储器映像及Boot映射启动

02-16 阅读数 623

以下以STM32F103F1C8T6为例介绍存储映射。该系列芯片将寄存器、输入输出端口、程序存储器、数据存储器映射在4GB的空间当中(0x00000000-0xFFFFFFFF)2^32Bytes顺序... 博文来自: MrYang_YoYo‘s blog

stm32的学习之存储器和总线架构

12-21 阅读数 3205

四个驱动单元:context-M3内核的D-bus总线和S-bus总线、通用DMA1和通用DMA2。四个被驱动的单元:内部FLASH(内部山村存储器)、内部SRAM、FSMC、AHB到APB的桥AHP... 博文来自: Years_pass的博客

 

傲游浏览器有效拦截所有网页广告,轻松云同步所有的文件,高速、安全、稳定

 

 

STM32存储器映射

12-14 阅读数 2991

STM32存储器映射1、Cortex-M3存储器映射CM3的地址空间有4G,但它只对这4G空间作了预先的定义,把4G空间分成8个块,每块大小为512M,并指出各段该分给哪些设备。具体的实现由芯片厂商决... 博文来自: 酷吧 www.hikuba.com

stm32之常用存储器笔记

08-28 阅读数 113

易失性(掉电数据会丢失,读写速度较快)(RAM(SRAM,DRAM))非易失性(掉电数据不会丢失,读写速度较慢)(ROM·光盘·软盘·FLASH)DRAM的存储单元:以电容的电荷来表示电压,电容有充放... 博文来自: 无己

STM32 系统架构及存储器映射

11-22 阅读数 635

STM32系统架构及存储器映射http://blog.csdn.net/dianxinll/article/details/8885293一、STM32系统架构STM32系统架构如下图所示:主系统有以... 博文来自: shenghua

stm32f1的存储器与复位

07-15 阅读数 4119

一、存储器映射      1、统一编址,程序存储器、数据存储器、外设寄存器组织在一个4GB的地址空间。       2、小端格式      3、映像(stm32f107,256KB产品)       ... 博文来自: lxjsailor的专栏

STM32处理器存储空间布局解析

05-09 阅读数 3554

一、Cortex-M3支持最大4GB的存储空间,其地址映射关系如下图二、存储器映射实例:256KBFlash 48KBSRAMIROM1为片上程序存储器,即片上集成的Flash存储器,对该处理器Fla... 博文来自: kevinhg的博客

 

 

 

STM32内存大小与地址的对应关系以及计算方法

10-11 阅读数 4100

1、概述在计算机中要访问存储区,都是通过地址来进行访问的,包括所有的外设(比如串口、内存、硬盘等),都对应有一个访问地址,地址就相当于门牌号,有了门牌号,我们才知道操作的是哪一个区域、哪一个外设。最被... 博文来自: Ace's Blog

stm32内存分配

03-19 阅读数 2101

原文:http://blog.sina.com.cn/s/blog_72605ba50101esk7.html(1)栈区(stack):由编译器自动分配和释放,存放函数的参数值、局部变量的值等,其操作... 博文来自: young45的专栏

【小程序】微信小程序开发实践

11-07 阅读数 24万+

帐号相关流程注册范围 企业 政府 媒体 其他组织换句话讲就是不让个人开发者注册。 :)填写企业信息不能使用和之前的公众号账户相同的邮箱,也就是说小程序是和微信公众号一个层级的。填写公司机构信息,对公账... 博文来自: 小雨同学的技术博客

Linux国内常用源的介绍和使用(Ubuntu16.04为例)

05-16 阅读数 4万+

Ubuntu16.04的”软件和更新”中,自带了“自动选择最快速的源”的功能,所以现在说配置源,仅仅是了解。当然,如果说是为了手动配置ipv6的源,节约学校的流量,还是非常有必要的。清华TUNA镜像源... 博文来自: 夜色

html5预览上传图片缩略图

09-17 阅读数 4793

html5预览上传图片缩略图 博文来自: 猴子年华的专栏

thymeleaf模板实现html5标签的非严格检查

02-24 阅读数 3万+

一、概述最近在springboot项目引入thymeleaf模板时,使用非严格标签时,运行会报错。默认thymeleaf模板对html5标签是严格检查的。二、在项目中加NekoHTML库在Maven中... 博文来自: Luck_ZZ的博客

解决tomcat启动时,端口被占用问题

12-27 阅读数 1871

有时候我们启动tomcat的时候,会提示端口被占用,我们可以用下面的方法解决这个问题。 1.进入cmd 2.输入netstat -ano|findstr 8080(注:8080为被占用的端口名),... 博文来自: liushun1223的博客

配置简单功能强大的excel工具类搞定excel导入导出工具类(一)

09-22 阅读数 4万+

对于J2EE项目导入导出Excel是最普通和实用功能,本工具类使用步骤简单,功能强大,只需要对实体类进行简单的注解就能实现导入导出功能,导入导出操作的都是实体对象. 请看一下这个类都有哪些功能:   ... 博文来自: 李坤 大米时代 第五期

jquery/js实现一个网页同时调用多个倒计时(最新的)

11-25 阅读数 42万+

jquery/js实现一个网页同时调用多个倒计时(最新的) 最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦! //js ... 博文来自: Websites

C语言正确使用extern关键字

08-14 阅读数 4万+

转载请注明出处利用关键字extern,可以在一个文件中引用另一个文件中定义的变量或者函数,下面就结合具体的实例,分类说明一下。 一、引用同一个文件中的变量#includeint func();int... 博文来自: xingjiarong的专栏

webService学习(二)—— 调用自定义对象参数

01-16 阅读数 1万+

webService学习(二)—— 调用自定义对象参数 本文主要内容: 1、如何通过idea进行webService Client的简单实现(不再使用wsimport的方式,其实是ide帮我们做了... 博文来自: 止水的专栏

plsql的命令(command)窗口与sql窗口有什么区别20170620

06-21 阅读数 3万+

command窗口是命令窗口,即为sqplus窗口,有命令提示符,识别sqlplus命令,基本的命令都可以执行 sql仅可执行DDL、select、DML等... 博文来自: Ape55的博客

微信支付V3微信公众号支付PHP教程(thinkPHP5公众号支付)/JSSDK的使用

02-02 阅读数 14万+

扫二维码关注,获取更多技术分享 本文承接之前发布的博客《 微信支付V3微信公众号支付PHP教程/thinkPHP5公众号支付》必须阅读上篇文章后才可以阅读这篇文章。由于最近一段时间工作比较忙,... 博文来自: Marswill

Unity-Loom的多线程研究及优化

08-26 阅读数 1万+

1.Loom的原理Loom继承自MonoBehaviour,在Unity流程管理中Update方法下检查需要回调的Action进行加锁并回调,确保在主线程执行,回调序列本身又作为静态数据保存,在任意线... 博文来自: wlz1992614的专栏

线程的3种实现方式--内核级线程, 用户级线程和混合型线程

07-12 阅读数 1万+

之前降解过内核线程、轻量级进程、用户线程三种线程概念解惑(线程≠轻量级进程), 但是一直对其中提到的线程的实现模型比较迷惑, 这次就花了点时间怎么学习了一下子1 线程的3种实现方式在传统的操作系... 博文来自: AderStep

ListView滑动删除实现之四——Scroller类与listview缓慢滑动

04-27 阅读数 7949

前言:这个月真是过得太快了,本来说要看四章的内容,这下才看了两章,擦……严重没完成预算啊……撞豆腐死了算了... 博文来自: 启舰

强连通分量及缩点tarjan算法解析

11-16 阅读数 55万+

强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Ti... 博文来自: 九野的博客

【HTTP】Fiddler(一) - Fiddler简介

01-04 阅读数 30万+

1.为什么是Fiddler? 抓包工具有很多,小到最常用的web调试工具firebug,达到通用的强大的抓包工具wireshark.为什么使用fiddler?原因如下: a.Firebug虽然可以抓包... 博文来自: 专注、专心

java代码通过ssh免密操作远程服务器shell

04-16 阅读数 5729

环境操作系统:win10 虚拟机:centos7步骤一般我们都是通过CRT这样的工具来连接并操作服务器。但是最近由于业务需求,需要通过java代码来操作远程服务器。其实也就是操作shell。 思路... 博文来自: 山鬼谣的专栏

使用/dev/mem内存映射的方式操作GPIO口

11-14 阅读数 4655

使用的是全志H3的芯片,运行Debian Desktop系统的ARM版本Armbian,要控制外部几个IO口,可以使用很多种方法,如果对GPIO的操作速度有要求就需要使用直接操作内存寄存器的方式来控制... 博文来自: 欢迎光临

C++针对ini配置文件读写大全

12-06 阅读数 3万+

ini文件(Initialization file),这种类型的文件中通常存放的是一个程序的初始化信息。ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Key... 博文来自: oMengHen1的专栏

连续特征离散化和归一化

06-25 阅读数 2万+

连续特征进行离散化处理。 博文来自: hero_fantao的专栏

学习排序算法(二):Pairwise方法之RankNet

12-24 阅读数 1万+

学习排序算法(二):Pairwise方法之RankNet 前面一篇博文介绍的Ranking SVM是把LTR问题转化为二值分类问题,而RankNet算法是从另外一个角度来解决,那就是概率的... 博文来自: bigfacesafdasgfewgf

redis两种持久化策略

08-30 阅读数 2万+

reids是一个key-value存储系统,为了保证效率,缓存在内存中,但是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,以保证数据的持久化。   所以:redis是一... 博文来自: 那么好,

Android事件分发机制之源码完美解析(上)

02-03 阅读数 9683

学事件分发是为了什么呢?还不是为了解决滑动冲突的。 实际上,如果仅仅是为了解决滑动冲突的,大可不必看源码,只需要掌握事件分发的外在规律即可。 只要记住这张图,再明白内部拦截法和外部拦截法,滑动冲突... 博文来自: qq_36523667的博客

关于SpringBoot bean无法注入的问题(与文件包位置有关)

12-16 阅读数 15万+

问题场景描述整个项目通过Maven构建,大致结构如下: 核心Spring框架一个module spring-boot-base service和dao一个module server-core 提供系统... 博文来自: 开发随笔

DirectX修复工具增强版

02-09 阅读数 189万+

最后更新:2018-12-20 DirectX修复工具最新版:DirectX Repair V3.8 增强版  NEW! 版本号:V3.8.0.11638 大小: 107MB/7z格式压缩,18... 博文来自: VBcom的专栏

Solidity存储器阵列创建 卷积神经网络结构 卷积神经网络结构定义 h.264码流结构 solidity结构类型

c c++ stm32 宏定义 stm32 库c++版本 stm32 用c++编写 stm32用c++ c#程序控制stm32 区块链层级结构 人工智能中的深度结构学习

没有更多推荐了,返回首页

白小白ani

关注

原创

14

粉丝

51

喜欢

45

评论

14

等级:

访问:

11万+

积分:

1251

排名:

5万+

最新文章

个人分类

展开

归档

展开

热门文章

最新评论

CSDN学院

CSDN学院

CSDN企业招聘

CSDN企业招聘

kefu@csdn.net

 

 

 

不良信息举报

举报内容:

stm32的存储器结构 - 白小白

举报原因:

色情政治抄袭广告侵权骂人其他

原文地址:

 

原因补充:

最多只允许输入30个字

 

 

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐