嵌入式
文章平均质量分 89
1234567啦啦啦
C、Java
展开
-
内存(一)
1. Page/Sector/Block 操作Flash的时候(擦除、读、写),会涉及到Page/Sector/Block的概念。不同型号的flash操作也是不同的。页(page) – 对单片机内部的flash而言,page是最小可操作单位。 块(block) – 和基于块的读写命令相关,其大小是当host发出一个块命令时传输的字节数。 扇区(sector) - 和擦除命令相关。其大小(si原创 2017-09-29 16:42:44 · 540 阅读 · 0 评论 -
内存(二)
前言:项目开发过程中经常需要统计整个项目占用的内存空间(RAM)、flash空间或是工程中某个任务或是某几个任务占用的内存空间(RAM)、flash空间。欲实现以上目的,可以从工程的.map文件中查找。下面就介绍.map文件以及如何根据.map文件获取占用空间的统计。概念:(一)C语言五大内存分区 1、栈区(stack) 由编译器自动分配释放 ,存放函数的参数值,局部变量的...原创 2018-03-08 17:09:45 · 190 阅读 · 0 评论 -
attribute改变编译器的属性
1. 格式:__attribute__(属性列表)注: (1) 前后各是两个下划线; (2)要指定多个属性,可在双括弧内用逗号将属性分隔开; (3)可以用来设置函数属性、变量属性和类型属性。 (4)位置放于声明的尾部,例如:int test_data __attribute__((section("NO_INIT"), zero_init));如上所示,生成doxy...原创 2018-02-27 17:04:32 · 1003 阅读 · 0 评论 -
RT-Thread内核实现(1)
1. 编写main函数一个工程如果没有main函数是编译不成功的,会出错。因为系统在开始执行的时候先执行启动文件里面的复位程序,复位程序里面会调用C库函数__main,__main的作用是初始化好系统变量,如全局变量,只读的,可读可写的等等。__main最后会调用__rtentry,再由__rtentry调用main函数,从而由汇编跳入到C的世界。这里面的main函数就是我们自己写的。2. 软...原创 2018-11-30 10:01:37 · 759 阅读 · 0 评论 -
RT-Thread内核实现(2)
1. 信号量信号量是一种实现线程间通信的机制,实现线程间同步或临界资源的互斥访问。以同步为目的的信号量和以互斥为目的的信号量在使用时有如下不同:用作互斥时,信号量创建后可用信号量个数应该是满的;用作同步时,信号量在创建后被置为空;在操作系统中,使用信号量目的是为了给临界资源建立一个标志,信号量表示该临界资源的占用情况。二值信号量:信号量资源被获取了,信号量值就是0;信号量资源被释放,...原创 2019-01-04 10:32:46 · 572 阅读 · 0 评论 -
内存(三)
存储器可分为易失性存储器(VM, volatile memory)和非易失性存储器(NVM)两类;VM:电源开启时资料存在,电源关闭则资料立刻流失;NVM:电源开启时资料存在,电源关闭资料仍然可以保留;存储器按照用途可分为主存(内存)和辅助存储器(外存);...原创 2019-05-21 15:58:42 · 151 阅读 · 0 评论