![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MCU中的内存管理-无MMU
1
__pop_
这个作者很懒,什么都没留下…
展开
-
嵌入式linux开发 (三十四) 内存管理2.0(6) 各种段(.code .rodata .data .bss .stack .heap)的含义
我们知道, 逻辑程序在连接的时候在elf 文件中会有.code .rodata .data 然后在内存中才会有 .code .rodata .data那么为什么连接器在链接生成的elf文件中会有这些段呢?大概是因为 链接器有分段的机制???...原创 2024-02-23 11:21:57 · 433 阅读 · 0 评论 -
嵌入式linux开发 (三十五) 内存管理3.0(1) linux内存管理之用户空间
这个概念有点大,先从用户程序的段开始看吧// 需要知道 用户程序中的 (.code .rodata .data .bss .stack .heap) 在哪里// 需要知道 用户程序中访问的地址是虚拟地址还是物理地址./aarch64/aarch64_addrp_stack1:0x0000007feef5a760p_stack2:0x0000007feef5a75cp_heap1 ...原创 2020-04-26 13:54:34 · 428 阅读 · 0 评论 -
嵌入式linux开发 (三十四) 内存管理2.0(5) 其他rtos内存管理
raw-os内存管理方法和ucos一样原创 2020-04-24 14:03:29 · 144 阅读 · 0 评论 -
嵌入式linux开发 (三十三) 内存管理2.0(4) rt-thread内存管理
//static char thread1_stack[1024];struct rt_thread thread1;rtthread_startup rt_application_init rt_system_scheduler_start rt_thread_init(&thread1, "led1", ...原创 2020-04-24 11:17:08 · 207 阅读 · 0 评论 -
嵌入式linux开发 (三十二) 内存管理2.0(3) ucos2内存管理 ucos3内存管理
和 freertos有些区别ucos2整体来说,布局的话flash .code .ro-data // 应用程序的和系统的混在一起了ram .data .bss .heap TCB(应用程序) // 应用程序的和系统的混在一起了 // 注意: TCB在.data里面 // OS_EXT OS_TCB OSTCBTbl[OS_MAX_TASKS ...原创 2020-04-23 21:48:49 · 201 阅读 · 0 评论 -
嵌入式linux开发 (三十一) 内存管理2.0(2) freertos内存管理
本次采用的os是freertos,基于stm32f407zgt6移植过程及代码代码分析内存分段初始化部分startup_stm32f407xx.s Reset_Handler 初始化栈 // .stack段 // .code 段没做动作 // .bss 段没做动作 从flash 上 加载data 段入sram 清bss段 SystemInit __...原创 2020-04-23 15:25:26 · 294 阅读 · 0 评论 -
嵌入式linux开发 (三十) flash管理2.0(1) flash管理总述
硬件讲了 nor nand sd emmc驱动讲了 以块的方式 读写nor 读写nand 读写sd 读写emmc现在要讲 以文件的方式 读写nor 读写nand 读写sd 读写emmc对flash管理的日益增长的需求及解决方案以块读写直接用flash的驱动去读写一个块写的时候,需要知道 我们将数据写到哪一个块,还有多少块可以写.读的时候,需要知道 我们的数据 在哪一个块,总...原创 2020-04-22 21:25:25 · 213 阅读 · 0 评论 -
嵌入式linux开发 (二十九) 内存管理2.0(1) 内存管理总述
硬件讲了 sram sdram ddr3驱动讲了 控制器初始化 读写内存内存管理2.0主要讲软件对内存的管理(分块及保护及管理)关于内存管理2.0,其实也讲了一部分,对内存的分段应该就属于内存2.0的 // .code .ro-data .data .bss .stack .heap现在要讲 内存保护(MPU MMU) buddy slab 加载文件到内存刚加载到内存,还没...原创 2020-04-22 21:15:28 · 216 阅读 · 0 评论 -
嵌入式linux开发 (二十八) 存储管理(2) 内存管理和flash管理
存在于soc芯片内,应该是类ram接口,用户存储boot代码.不需要驱动不需要文件系统管理原创 2020-04-21 21:53:17 · 216 阅读 · 0 评论 -
嵌入式linux开发 (二十七) 存储管理(1)从flash到内存
为什么要做内存分段有哪些段,在哪里体现There are 11 section headers, starting at offset 0x208:Section Headers: [Nr] Name Type Address Off Size ES Flg Lk Inf Al [ 0] ...原创 2020-04-21 21:46:47 · 711 阅读 · 0 评论 -
嵌入式linux开发 (二十六) Flash管理(1) 芯片对Flash的管理
总述根据加载方式,加载源有几种 1.映射 // 硬件主动搬运 也可算在其中 stm32的主flash // 完全映射 s3c2440的nand // 4KB搬运 2.bootrom 加载 进 sram dram exynos4412 的 sd卡 搬运到sram // 256KB搬运 i.mx6ull 的 sd卡 搬运到 dram // 几乎不限制大小(打下根据sd卡...原创 2020-04-20 15:04:58 · 510 阅读 · 0 评论 -
嵌入式linux开发 (二十五) 内存管理(7) 其他芯片在硬件上对内存的管理
讨论的是芯片硬件对内存的管理,包括芯片中固化的代码N32905U1DN总介 ARM926EJ-S 32-bit RISC CPU with 8KB I-Cache & 8KB D-Cache Frequency up to 200MHz@1.8V core power operation voltage JTAG interface supported for develo...原创 2020-04-20 13:57:05 · 330 阅读 · 0 评论 -
嵌入式linux开发 (二十四) 内存管理(6) 芯片及芯片启动后对内存的简单管理总结
之前分析了三个芯片,不同的微架构,不同的生产厂家,对内存管理做的努力芯片stm32f407zgt6s3c2440i.mx6ull架构ARMv7ARMv5tARMv7微架构cortex-M4ARM920Tcortex-A7厂家意法半导体三星飞思卡尔(被NXP收购)相同部分- 都有boot配置,可以配置从不同方式启动- 都有flas...原创 2020-04-19 20:33:32 · 486 阅读 · 0 评论 -
嵌入式linux开发 (二十三) 内存管理(5) s3c2440内存管理
之前想着s3c2440内存管理应该和imx6ull 是一样的,目前看起来是不一样JZ2440 S3C2440 ARM920T ARMv5t -内置 Steppingstone (4K-Byte SRAM) 无rom -外扩 EM63A165TS-6G:32MB/片,SDRAM,共两片 MX29LV160DBTI:2MB,并口 NOR FLASH ...原创 2020-04-19 19:59:44 · 327 阅读 · 0 评论 -
嵌入式linux开发 (二十二) 内存管理(4) I.MX6ULL内存管理
正点原子ARMLinux开发板 I.MX6ULL cortex-A7 ARMv7 -内置 sram:128KB srom:96KB,用户不可编程 -外扩 NT5CC256M16EP-EK:512MB,DDR3L KLM8G1GET:8GB,EMMC硬件对内存的管理总述系统架构1 sram2 DDR3L软件对内存的管理...原创 2020-04-19 18:32:29 · 1366 阅读 · 0 评论 -
嵌入式linux开发 (二十) 内存管理(3.2) STM32F407ZGT6内存管理之从链接到执行的过程(MPU-Without)
链接链接做了什么1.3 What the linker does when constructing an executable imagearmlink performs many operations, depending on the content of the input files and the command-line options you specify.When...原创 2020-04-17 11:15:05 · 278 阅读 · 0 评论 -
嵌入式linux开发 (二十一) 内存管理(3.3) STM32F407ZGT6内存管理之启动篇(MPU-Without)
启动第四阶段 __rt_entryIf you do not want the library to perform these actions, you can define your own __main that branches to __rt_entry . Use the -e armclang option or --entry armlink option to spe...原创 2020-04-16 11:15:04 · 354 阅读 · 0 评论 -
嵌入式linux开发 (二十) 内存管理(3.1) STM32F407ZGT6内存管理之启动篇(MPU-Without)
启动第一阶段 BOOT引脚 存储映射 异常向量表烧写 当 LED bin文件 被烧入 主flash(1MB,0x0800 0000 - 0x080F FFFF)配置 配置BOOT0 为 0 ,BOOT1 随意启动 1.上电 2.由于 BOOT0 为0,所以 0x0800 0000 - 0x080F FFFF被映射到 0x0000 0000 - 0x03FFFFFF //...原创 2020-04-15 12:36:32 · 415 阅读 · 0 评论 -
嵌入式linux开发 (十九) 内存管理(3) STM32F407ZGT6内存管理(MPU-Without)
硬件正点原子探索者开发板 STM32407ZET6 cortex-M4 ARMv7 -内置 SRAM:196KB Up to 192+4 Kbytes of SRAM including 64 Kbyte of CCM (core coupled memory) data RAM SROM(用户可编程):1M Up to 1 Mbyte of Flash me...原创 2020-04-13 15:48:46 · 2902 阅读 · 0 评论 -
嵌入式linux开发 (十八) 内存管理(2) ARM内存管理
硬件对内存的管理armv7v8ARM是统一编址的,也就是外设和(内存A)进行统一的编址,共同形成了4G物理地址空间(32位为例子)。内存控制器属于外设,内存属于(内存A).一个soc内部及外扩的内存都属于(内存A).cortex-M cortex-A具体芯片定义了内部内存的大小定义了内存控制器的IP内存控制器ARM对(内存A)的管理统一编址,其实是通过内...原创 2020-04-13 13:04:09 · 431 阅读 · 0 评论 -
嵌入式linux开发 (十七) 内存管理(1) 51内存管理
指令集架构和存储器架构指令集架构 51芯片是指集成51内核(51架构,免费的)的芯片 51内核 == 51指令集 == 51架构 独立编址存储器架构 冯诺依曼结构(在内存里,程序指令储存和数据储存不分开的存储器结构)内存分类及硬件对内存的管理片上内存内部RAM的低128位(00-7F) // 其中分 1. 寄存器,地址从0000H到001FH,共32字节 . 2. 可...原创 2020-04-13 12:47:57 · 296 阅读 · 0 评论 -
嵌入式linux开发 (十六) BOOT(1) I.MX6ULL BOOT
串行下载内部boot模式 内部bootrom运行(figure8-3有bootrom的存储分布图) 初始化时钟 使能MMU和cache 从指定的启动设备读取bin文件的头到sram. 根据头初始化ddr 然后根据头(位置(链接起始地址),大小) 拷贝bin文件中的用户代码到sdram指定地址,开始运行用户代码 bin文件的头有什么内容 1.image vector ...原创 2020-04-13 10:14:52 · 186 阅读 · 0 评论 -
嵌入式linux开发 (十五) FLASH(5) I.MX6ULL外扩SD卡
- 正点原子ARMLinux开发板 I.MX6ULL cortex-A7 -外扩 micro sd卡:16GB,无型号原创 2020-04-11 12:29:02 · 427 阅读 · 0 评论 -
嵌入式linux开发 (十四) FLASH(4) I.MX6ULL外扩EMMC
- 正点原子ARMLinux开发板 I.MX6ULL cortex-A7 -外扩 KLM8G1GET:8GB,EMMC原创 2020-04-11 12:20:56 · 495 阅读 · 0 评论 -
嵌入式linux开发 (十三) FLASH(3) s3c2440外扩NAND FLASH
- JZ2440 S3C2440 ARM920T -外扩 MX29LV160DBTI:2MB,并口 NOR FLASH K9F2G08U0C: 256MB,NAND FLASH原创 2020-04-10 21:34:31 · 212 阅读 · 0 评论 -
嵌入式linux开发 (十二) FLASH(2) stm32外扩SPINorFlash
- 正点原子探索者开发板 STM32407ZET6 cortex-M4 -外扩 W25Q128:16M,NorFlash,SPI接口soc■ Core: ARM 32-bit Cortex™-M4 CPU with FPU,Adaptive real-time accelerator (ARTAccelerator™) allowing 0-wait state executi...原创 2020-04-10 18:03:30 · 1106 阅读 · 0 评论 -
嵌入式linux开发 (十一) FLASH(1) stm32外扩EEPROM
- 正点原子探索者开发板 STM32407ZET6 cortex-M4 -外扩 24C02:256B,EEPROM,I2C接口 W25Q128:16M,NorFlash,SPI接口soc■ Core: ARM 32-bit Cortex™-M4 CPU with FPU,Adaptive real-time accelerator (ARTAccelerator™) all...原创 2020-04-10 17:12:17 · 815 阅读 · 0 评论 -
嵌入式linux开发 (十) RAM(4) I.MX6ULL外扩DDR3L
- 正点原子ARMLinux开发板 I.MX6ULL cortex-A7 -外扩 NT5CC256M16EP-EK:512MB,DDR3LsocThe i.MX 6ULL application processors are NXP's latest additions to a growing family of real-time processing products off...原创 2020-04-10 15:00:06 · 966 阅读 · 0 评论 -
嵌入式linux开发 (九) RAM(3) s3c2440外扩sdram
- JZ2440 S3C2440 ARM920T -外扩 EM63A165TS-6G:32MB/片,SDRAM,共两片原创 2020-04-10 12:36:43 · 407 阅读 · 0 评论 -
嵌入式linux开发 (八) RAM(2) stm32外扩SRAM
- 正点原子探索者开发板 STM32F407ZET6 cortex-M4 -外扩 IS62WV51216:1MB,SRAM,FSMC接口 // 为什么不扩展SDRAM,STM32F407 FSMC接口支持SRAM,NAND,NOR,PSRAM. 不支持SDRAM.STM32的高端产品429/439添加了新的外设,SDRAM控制器(FMC总线)soc■ Core: ARM 32-...原创 2020-04-09 22:56:43 · 982 阅读 · 0 评论 -
嵌入式linux开发 (七) RAM&fLASH(1)
各种开发板及RAM配置- 普中科技EM V3.0 STC89C51RC 51 - 内置 SRAM:512B SROM:4KB EEPROM:2KB - 外置 24C02:256B,EEPROM,I2C接口 - 正点原子探索者开发板 STM32407ZET6 cortex-M4 -内置 SRAM:196KB Up to 192+4 Kbytes of ...原创 2020-04-07 23:58:33 · 464 阅读 · 0 评论 -
嵌入式linux开发 (六) E盘资料总览
本盘只要讲了怎么开发驱动,没有关注点总纲 1.字符设备驱动框架 2.设备树 3.并发与锁 a.pinctrl子系统和gpio子系统原创 2020-04-06 00:08:48 · 116 阅读 · 0 评论 -
嵌入式linux开发 (五) D盘资料总览
D盘主要的内容是 uboot kernel rootfs 的制作 及 烧写关注点第1讲 正点原子官方系统镜像烧写实验第2讲 正点原子官方Uboot编译与体验第6讲 Uboot启动流程详解第7讲 Uboot移植实验第9讲 正点原子官方Linux内核编译与体验第12讲 Linux内核启动流程简介第13讲 Linux内核移植第14讲 根文件系统构建第15讲 MfgToo...原创 2020-04-06 00:01:52 · 134 阅读 · 0 评论 -
嵌入式linux开发 (四) C盘资料总览
主要介绍了裸机如何编程,及如何驱动各种外设包括 1.视频 2.ppt 3.源码关注点 ddr 与 emmc 的驱动(目前没看到EMMC的实验) 第1讲 开发环境搭建第2讲 vscode软件的安装与使用第3讲 I.MX6U-ALPHA开发板简介第5讲 I.MX6U芯片简介第6讲 汇编LED驱动实验第7讲 IMX启动方式第8讲 C语言版本LED驱动实验第9讲 模仿STM...原创 2020-04-05 23:55:44 · 144 阅读 · 0 评论 -
嵌入式linux开发 (三) B盘资料总览
不感兴趣原创 2020-04-05 23:44:14 · 134 阅读 · 0 评论 -
嵌入式linux开发 (二) A盘资料总览
开发板原理图开发板原理图 核心板原理图 soc + ddr3 + emmc 底版原理图 各种外设I.MX6U 数据手册 I.MX6UL I.MX6ULL其他芯片的芯片手册易失性存储芯片非易失性存储芯片快速开始指南【正点原子】I.MX6U用户快速体验V1.0.pdf【正点原子】I.MX6U Yocto构建根文件系统V1.0.pdf【正点原...原创 2020-04-05 23:43:43 · 395 阅读 · 0 评论 -
嵌入式linux开发 (一)
最近买了一个 正点原子ARM Linux开发板,想在这两天对资料熟悉一下.开发板基于soc MCIMX6Y2CVM08AB(I.MX6ULL)易失性存储 NT5CC256M16EP-EK(DDR3L 512MB)非易失性存储 KLM8G1GET(EMMC 8GB)外设很多,不一一列出.配套资料 资料包+视频盘下载: A盘:文件夹包下载链接:htt...原创 2020-04-05 23:15:51 · 355 阅读 · 0 评论