Hodgepodge of ARM
Preface 这篇来个ARM的大杂烩吧,主要是把收集到的一些和ARM相关的知识和信息做个汇总,以备查阅。发现Arm官网真是个宝藏,内容多的很可能穷尽职业生涯也学不完,只取所需吧。 Content Path of ARM Evolution 先上一张官网关于ARM架构的图: 从ARMv8开始,ARM更新太快了,一年一更(见Reference里引用blog里的 announc...
Preface 这篇来个ARM的大杂烩吧,主要是把收集到的一些和ARM相关的知识和信息做个汇总,以备查阅。发现Arm官网真是个宝藏,内容多的很可能穷尽职业生涯也学不完,只取所需吧。 Content Path of ARM Evolution 先上一张官网关于ARM架构的图: 从ARMv8开始,ARM更新太快了,一年一更(见Reference里引用blog里的 announc...
Preface 上次遇到一个heap overflow(《About “malloc(): corrupted top size”》)的问题,其实到现在还没有好的解决办法,不过对stack 的overflow倒是有GCC的option做保护。在以前的项目中有用过,不过没有详细研究,这篇就来deepdive下。 Content Basic 首先stack是做啥用的?嗯,stack很...
Preface memory的使用和调试对各种系统都是个大话题,比如近期关于Rust for Linux项目内讧的新闻就引起了博主对Rust的兴趣。而Rust的内存安全特性也是为了帮助开发者避免因为内存问题出现安全漏洞。OPTEE虽然也有用Rust去开发User TA,但和Linux一样,都在尝试阶段。目前主流还是用c来实现Kernel和User TA,这篇主要看怎么查看OPTEE里的m...
Preface 昨天《Shared Libraries of TA》里提到了在使用shared library的时候一种可能的提高效率的方法,这篇博文先看early TA怎么用,然后看昨天提出的方法是否可行。 SoC Arch : ARMv8 OPTEE version: 4.0.0。 Content How to enable early TA 关于怎么enable e...
Preface OPTEE里有个宏叫做”CFG_ULIBS_SHARED”,由此联想到主流OS里动态链接库,这篇文章主要看这个宏有什么作用,和动态链接库有什么关联区别。 SoC Arch : ARMv8 OPTEE version: 4.0.0。 Content ldelf OPTEE里有个module叫做ldelf,它的主要功能包括open ta,parse ELF,lo...
Preface 之前在查阅AT的用法时偶然发现了OVERLAY这个关键字,感觉发现了新大陆,本来想马上实践下,奈何打工人要先做好自己本职工作,最近又比较忙,就拖到了现在。话不多说,开始吧。 Content 首先来看这个关键字是做啥的。 The OVERLAY command provides an easy way to describe sections which ar...
Preface 嗯,最近在做OPTEE,其中有个编译宏叫做CFG_ULIBS_SHARED,后续准备写一篇关于这个宏的一些东西,这篇作为先导,复习一下知识。 Content 关于c中的Libary,有两种,一种是static library,一种是dynamic library。其中static libary是直接打包在目标文件里的,而dynamic libary则只是在Dayna...
Preface 最近解决了一个小MCU系统里memory分配的问题。这个小系统本身memory有限,而且还是非连续的两块,原本是把binary(.text,.rodata,.data)放在第一块,其他的(.bss,.stack,.heap)放第二块,现在feature增加,binary超出了第一块的大小,应该怎么办? Content 这个问题其实有个很常用的场景就是ROM code...
上周碰到一个很奇怪的问题,一直出现”malloc(): corrupted top size”这个错误,导致application异常退出。反复检查malloc的size,甚至手动变化这个size的大小,还是一直出错。百思不得其解。这个周末闲来无事,认真检查了整个代码,发现竟然是之前malloc的buffer小了,导致memory操作越界,但竟然没有当场出错,而是再次的malloc的时候...
Preface 在嵌入式开发过程中,博主发现有部分问题涉及到上板子调试就会变复杂了,image怎么生成和打包,怎么输出debug信息,用什么方法调试,怎么调试最方便。这样QEMU就有了用武之地。但QEMU也是有适用范围的,比如只是软件逻辑的调试,比如如果QEMU很好的模拟了硬件特性也可以用来调试硬件相关问题。OPTEE官方提供了QEMU调试方法,值得去setup一套这样的环境。 官...