嵌入式开发
文章平均质量分 87
一只特立独行的程序猿
你站在桥上看风景,看风景的人在船上看你;明月装饰了你的窗子,你装饰了别人的梦。
展开
-
[C/C++语言]全局变量、局部变量、静态全局变量和静态局部变量运行时内存分配方式研究
0、前言在分析一个程序的堆栈、bss段、text段、RO、RW、ZI等概念时,首先区分一下程序进程和程序文件,同时区分一下哈佛结构和冯诺依曼结构。程序进程就是程序运行时的程序,程序文件是编译后生成的可执行文件,比如.bin文件等。哈佛结构和冯诺依曼结构的主要区别就是处理器能不能实现取指令和取数据的并发进行。嵌入式芯片中主要是哈佛结构,PC机上是冯诺依曼结构。(1)经典的哈佛结构:程序存储器和数据存储器是各自独立的存储器。处理器应该有两套总线,一套是程序存储器的数据和地址总线,一套是数据存.原创 2021-09-15 23:32:03 · 2757 阅读 · 0 评论 -
漫谈CPU缓存与主存
1、概述每一个现代处理器(CPU)都配置高速缓存(Cache)。目前CPU高速缓存级别主要分为L1/L2/L3三个级别;三个级别的高速缓存,缓存大小逐级增加同时访问速度逐次降低。高速缓存存在的主要原因是解决CPU寄存器与主存在处理速度上不匹配问题,从而极大提高CPU使用效率。2、缓存和主存之间的区别通常情况下,高速缓存均是依托于静态随机访问存储器(SRAM),而主存一般是依托于动态随机访问存储器(DRAM),即两个依赖的硬件不同。那么SRAM和DRAM又有何不同呢?(1)SRAM的访问速度要原创 2021-09-14 17:40:07 · 4198 阅读 · 0 评论 -
【linux设备驱动程序--001】第一篇:设备驱动程序简介
【声明】本文内容为学习《LINUX设备驱动程序》一书的笔记,在书籍内容基础上加入了个人学习的理解与总结,以便后续复习回顾。Linux内核代码由大量复杂的代码结构组成,通常Linux设备驱动程序是进入Linux内核世界的大门。设备驱动程序在Linux内核中扮演着特殊的角色,它们是一个个独立的“黑盒子”,使某个特定的硬件响应一个定义良好的内部编程接口,这些接口完全隐藏了设备工作的细节。Linux系统自开发到现在,已经存在许多良好可用的设备驱动模块,那么是什么原因导致许多人对Linux驱动开发感兴趣..原创 2021-01-10 13:07:25 · 524 阅读 · 0 评论 -
关于“#define REG_MEM_BASE (*(volatile unsigend long *)(PA_BAES + 0x00000050))”语句的解析
对于嵌入式开发中经常遇到类似上述文件的定义,尤其在内存映射部分;为方便今后理解特举一个例子进行分析:#define REG_MEM_BASE (*(volatile unsigend long *)(PA_BAES + 0x00000050))(1)PA_BASE是一个宏定义 #define PA_BASE 0x40000000 ----一般定义一个内存映射之后某一区域(如IO...原创 2020-03-26 21:01:08 · 426 阅读 · 0 评论 -
ADM106x Configuration Tool使用说明
1、简介ADM106x Configuration Tool是ADM公司针对ADM106x等电源监控芯片进行参数配置及修改的辅助芯片使用工具,借助此工具可以快速实现对ADM106x芯片参数的配置,从而加入代码开发效率。2、简单操作及工具介绍2.1选择离线操作2.2选择ADM 106x的芯片型号,本文使用的是ADM10642.3进入可操作界面2.4Pin Nam...原创 2019-07-11 20:01:07 · 675 阅读 · 0 评论 -
Windows下SecureCRT无法正常启动问题
1、SecureCRT使用过程中出现异常后自动关闭,导致下次无法正常启动(运行程序无反应),此时一种可能的原因是由于SecureCRT异常关闭,所以异常关闭会在C:\Documents and Settings\Administrator\Application Data\SecureCRT.dmp,此文件会提交错误信息给VanDyke。2、此问题的解决方法:(1)cmd --->r...原创 2019-10-02 11:13:28 · 18247 阅读 · 4 评论