嵌入式
文章平均质量分 74
Spinlock_hys
无知的本科生一名。。。
展开
-
FreeRTOS代码剖析之4:内存管理Heap_4.c
FreeRTOS8.0.1内存管理的最后一个堆模型Heap_4,貌似是在这一个版本才有的。所以找到的说明几乎没有。代码的开头注释也只是简单地说了一下实现了pvPortMalloc()和vPortFree()两个函数,并且能够对回收的内存块进行合并,减少碎片的出现。(A sample implementation of pvPortMalloc() and vPortFree() that co原创 2014-08-19 22:33:39 · 9661 阅读 · 5 评论 -
NanoPC-T2 Uboot启动过程分析 - 3-1 main_loop()初认识
main_loop()是uboot的主循环,位于\/uboot-root\/common\/main.c中。其代码如下:void main_loop(void){ const char *s; bootstage_mark_name(BOOTSTAGE_ID_MAIN_LOOP, "main_loop"); modem_init(); cli_init(); run_preboot_environ原创 2016-07-29 10:31:10 · 2211 阅读 · 1 评论 -
NanoPC-T2 Uboot启动过程分析 - 2-6 board_init_r() part 2
在继续分析之前,先回顾当前 gd 的内容:bd_t *bd = 0x42BF_FF10{unsigned long bi_memstart = 0phys_size_t bi_memsize = 0unsigned long bi_flashstart = 0unsigned long bi_flashsize = 0unsigned long bi_flashoffset = 0unsigned原创 2016-07-29 10:30:21 · 1389 阅读 · 0 评论 -
NanoPC-T2 Uboot启动过程分析 - 2-5 board_init_r() part 1
在继续分析之前,先回顾一下当前相关寄存器的值、内存空间的使用情况和相关变量的值的情况。 r0 = 0x42BF_FF60 @ &gdr1 = 0x42C0_0000r2 = 0x42BF_FF10 @ &spr9 = 0x42BF_FF60 @ &gdr13 = &( bl mmu_turn_on ) @ /uboot-root/arch/arm/cpu/slsiap/s5p4418/start.原创 2016-07-29 10:29:33 · 1324 阅读 · 0 评论 -
NanoPC-T2 Uboot启动过程分析 - 2-4 init_sequence_f[] part 2
在继续分析之前,先回顾一下当前相关寄存器的值、内存空间的使用情况和相关变量的值的情况。Registers:r0 = 0r9 = 0x42BF_FF60 @ &gdr13 = &( bl mmu_turn_on ) @ /uboot-root/arch/arm/cpu/slsiap/s5p4418/start.Ssp = 0x42BF_FF60lr = &( bl board_init_f ) @原创 2016-07-29 10:28:19 · 856 阅读 · 0 评论 -
NanoPC-T2 Uboot启动过程分析 - 2-3 init_sequence_f[] part 1
在继续分析之前,先回顾一下当前相关寄存器的值与内存空间的使用情况。Registers:r0 = 0r9 = 0x42BF_FF60 @ &gdr13 = &( bl mmu_turn_on ) @ /uboot-root/arch/arm/cpu/slsiap/s5p4418/start.Ssp = 0x42BF_FF60lr = &( bl board_init_f ) @ /uboot-roo原创 2016-07-29 10:27:17 · 1788 阅读 · 0 评论 -
NanoPC-T2 Uboot启动过程分析 - 2-2 board_init_f
在本节继续之前,先回顾相关寄存器的内容与内存空间的使用情况:寄存器:r13 = &( bl mmu_turn_on ) @ /uboot-root/arch/arm/cpu/slsiap/s5p4418/start.Ssp = 0x42C0_0000lr = &( bl mmu_on ) @ /uboot-root/arch/arm/cpu/slsiap/s5p4418/mmu_asm.S内存空原创 2016-07-29 10:25:55 · 1302 阅读 · 3 评论 -
NanoPC-T2 Uboot启动过程分析 - 2-1 初始启动
从上一章的分析可看到,UBoot已经从SD卡或Flash被复制到 0x42C0_0000 内存上,并开始从这里开始执行。为了方便说明,以下将UBoot源码的根目录位置表示为 /uboot-root 。首先,先找到 /uboot-root/u-boot.lds,这是uboot编译时的链接文件,打开后重点关注以下内容:ENTRY(_stext)SECTIONS{ . = 0x00000000; . =原创 2016-07-29 10:24:45 · 1312 阅读 · 2 评论 -
NanoPC-T2 Uboot启动过程分析- 1 上电启动
NanoPC-T2 Uboot启动过程分析- 1 上电启动本文分析以NanoPC-T2平台为主。NanoPC-T2使用的是三星的S5P4418为主CPU。系统上电时,S5P4418 会将位于 0x3400_0000 上的 Internal ROM 代码映射到 0x0000_0000 上进行执行。该代码将 SD 卡上从 0x0000_0200 开始的数据复制到内部 RAM 中,目标位置为 0xFFFF原创 2016-07-29 10:21:41 · 1476 阅读 · 2 评论 -
Linux环境开发STM32,从环境到调试
最近因为某些原因,工作环境从windows向linux迁移了。原本在windows下开发STM32,现在要改用在linux上开发。 首先简单地描述一下软硬件开发环境。宿主机: 操作系统:CentOS7 x86_64 ( grome桌面版 ) IDE:Eclipse Luna JLink驱动:JLink_Linux_V434a 工具链:G原创 2015-02-14 11:21:23 · 11158 阅读 · 4 评论 -
FreeRTOS代码剖析之5:链表管理list.c
链表是操作系统中常用的数据结构,其结构比较简单,因此在剖析FreeRTOS的内核时先从这里开始入手。 链表是由众多链表节点组成的,在FreeRTOS中,链表节点有两种定义,分别是xLIST_ITEM和xMINI_LIST_ITEM。这两种有什么区别呢?可以说,xMINI_LIST_ITEM是xLIST_ITEM的浓缩版。看看两者的定义。struct xLIST_ITEM{原创 2014-11-20 21:28:27 · 3181 阅读 · 0 评论 -
FreeRTOS代码剖析之3:内存管理Heap_3.c
FreeRTOS8.0.1的第三个模型Heap_3,可以说是最容易理解的一个内存堆管理模型。因为在这个模型里,FreeRTOS直接将标准C库中的malloc()和free()进行加工打包。(Implementation of pvPortMalloc() and vPortFree() that relies on the compilers own malloc() and free() i原创 2014-08-18 19:59:20 · 4065 阅读 · 0 评论 -
FreeRTOS代码剖析之2:内存管理Heap_2.c
在FreeRTOS8.0.1这个版本中,一共有四个内存堆模型。这一次讲的就是第二个模型Heap_2.c。从一开始就可以看到注释中对Heap_2的模型解释:这是对pvPortMalloc()和vPortFree()的简单实现,除了可以分配内存之外,还可以对已分配的内存进行回收,但相邻空闲块不会进行合并,因此会造成一定的内存碎片。(A sample implementation of pvPort原创 2014-08-17 20:49:02 · 3976 阅读 · 3 评论 -
FreeRTOS代码剖析之1:内存管理Heap_1.c
内存管理是一个操作系统的重要组成部分之一,所有应用程序都离不开操作系统的内存管理。因此,在剖析FreeRTOS的内核代码之前,前对FreeRTOS的内存管理进行研究。 现在以FreeRTOS8.0.1进行剖析研究。参考资料为《Using the FreeRTOS Real Time Kernel-A Practical Guide opened》。 Heap_1.c的注释说明,原创 2014-08-16 23:58:06 · 5362 阅读 · 7 评论 -
NanoPC-T2 Uboot启动过程分析 - 3-2 启动命令的执行
回忆上一节,UBoot当前要解析和执行启动命令。该启动命令存储在环境变量bootcmd中。回忆环境变量的内容:baudrate=115200bloader=ext4load mmc 0:1bootcmd=$bloader 0x48000000 $kernel;$bloader 0x49000000 root.img.gz;bootm 0x48000000bootdelay=0bootfile=uI原创 2016-07-29 10:31:51 · 1499 阅读 · 0 评论