TWRP recovery 的强大功能使它成为刷机界的第一选择,常见品牌机型一般都有官方适配的 twrp,有些没有官方适配 twrp 的机型也有开发者制作了非官方版本。然而开发者不是万能的,还是有很多机型没有人做适配。对于这种情况,你是坐等大神,还是自己动手丰衣足食?当然是自己动手。事实上,适配 twrp 并不如想像的那么难。理论上说,适配工作就是准备必要的安卓源码和运行编译命令。下面,笔者将根据
接触freeRTOS没多长时间,决定重0开始 移植 freeRTOS到 老项目中。其实本来项目也没多复杂, 希望项目源码简介些, 有条理些, 正好不太忙,于是参考原子例程移植。 首先去freeRTOS官网 下载 源码下载工具 FreeRTOSv10.2.1.exe。下载后运行, 选择好目录就可
到这里,代码部分就修改完毕了,还需要修改该的就是Autotools的宏和链接脚本。 为了宏生成速度快,我把其他所有无关的BSP全部删除了。 Autotools宏的修改相对比较简单,文件位置参考以上的连载,有贴出具体目录下的文件。 这里首先修改: c/src/lib/libbsp/arm/acinclude.am 这个文件修简单,相当于case语句一样,增加一个case语句
原创
2010-12-28 00:38:00
299阅读
09年我接触到 RTEMS,然后开始学习RTEMS,自己先后将 RTEMS移植到 AT91SAM9260的单板上,然后又移植到 Marvell 的 88F6281 的单板上。通过这两个移植,大量的阅读RTEMS 的手册,算是入了点门。于是乎,把 AT91SAM9260 的RTEMS 4.9.4 BSP 撰写的整个过程与调试过程与大家分享。开发 BSP的过程大致如下:1.选择BSP模板,
原创
2010-12-22 22:30:00
595阅读
内核编译成功后,下一步我们就开始弄Hello World,完成这个工作,首先我们去官方网站下载测试程序包。 http://www.rtems.org/ftp/pub/rtems/4.9.4/class-examples-4.9.4.tar.bz2 解压缩,以后我们进入 class-examples-4.9.4 的文件夹。 输入以下命令 cd hello_wo
原创
2010-12-28 08:55:00
833阅读
中断驱动AT91rm9200和AT9260差别不大,主要要修改的地方是个别的中断向量号,另外就是最大中断向量号。 我所作的修改: c/src/lib/libcpu/arm/at91sam9260/irq/irq.h 删除了相关的9200的定义,定义了AT9260中断的最大数量。 /* * Interrupt handler Header file * * Bacon Xu
原创
2010-12-24 22:30:00
877阅读
杂项函数在 BSP 中也是非常重要的。我为了图省事,全部都放置在了:c/src/lib/libcpu/arm/at91sam9260/pmc/pmc.c中。 主要是获取CPU当前的频率和系统主时钟的频率。 前几篇连载中,我们在串口和时钟驱动里都是用了获取主时钟频率的函数。 另外一个就是 udelay 函数。udelay函数原来是posix的标准函数,但是rtems并没有实现,
原创
2010-12-24 23:17:00
331阅读
到上一连载为止,RTEMS 4.9.4的相关代码部分的修改就算结束了。 有些细心的朋友会注意到,第三个连载中列出了所有的文件,我们一些文件并没有修改;还有一些文件AT91RM9200中是没有的。如 c/src/lib/libcpu/arm/at91sam9260/memcpy/memcpy.S,这个文件是我找来的一个ARM下memcpy的优化版本,效率应该高于普通的memcpy。库里本来就有m
原创
2010-12-25 10:34:00
485阅读
遵循我们上次的步骤, 1.将c/src/lib/libbsp/arm/csb337复制为 c/src/lib/libbsp/arm/at9260; at9260 │ aclocal.m4 │ bsp_specs │ ChangeLog │ configure │ configure.ac │ Makefile.am │ Makefile.in │ preinst
原创
2010-12-24 22:01:00
678阅读
高精度定位,通常指的是亚米级、厘米级、毫米级的定位精度,在测绘、无人机、精准控制领域广泛应用,RTD(Real Time Differential),实时动态码相位差分技术。实时动态测量中,把实时动态码相位差分测量称作常规差分测量,RTD的精度在1-5 m内是比较稳定的。因为在实时动态测量中,最先在码相位测量上引入差分技术,所以把实时动态码相位差分测量称作常规差分GPS测量技术。 RTD由下列三部
其实到这里,只要能保证编译通过,再修改一下链接脚本,其实已经可以跑在at9260的系统上了。因为我没有仿真器,不知道程序的状态,所以必须撰写调试串口的驱动。 RTEMS 的调试串口并没有采用中断输出的方式,而是采用查询输出的方式。相对来说比较容易。 RTEMS里有两个打印函数: printf 和 printk printf是由库支持的打印函数,内部比较复杂,
原创
2010-12-24 22:58:00
615阅读
Project Nano-RTEMS for ARMV7M 我的想法如下:1、为 ARMV7M 平台提供一个可靠的RTOS 平台,RTEMS本身就是这么一个可靠的硬实时系统,而Cortex-M3,M4有着越来越强的处理能力,可扩展NAND和SDRAM,非常适合跑这类本身就是比较完善的系统。2、提供一个相对精简的核心,只耗 20KROM 和 10K RAM,取代 ucos 或者freeRT
[root@centos7 hello_world_c]# aarch64-rtems6-gdb o-optimize/hello.exe GNU gdb (GDB) 10.1.90.20210409-git Copyright (C) 2021 Free Software Foundation, ...
转载
2021-10-13 12:14:00
249阅读
2评论
(本文原创,转载请注明出处,谢谢) 这两天抽了个空,在rickleaf移植的 qemu mini2440 的rtems 4.9.5 bsp 上做了一些修改: 1.原来mini2440的 bsp是基于 gp32的bsp修改,复用了部分的gp32代码。cpu类型实际上使用的是s3c2410。这不利于对mini2440的修改。所以,增加了新cpu型号s3c2440,并将mini244
原创
2011-03-22 23:33:00
678阅读
遵循我们上次的步骤, 1.将c/src/lib/libbsp/arm/csb337复制为 c/src/lib/libbsp/arm/at9260; 2.将c/src/lib/libcpu/arm/at91rm9200复制为c/src/lib/libcpu/arm/at91sam9260; 打开 c/src/libbsp/arm/at9260/start/start.S,修改如
原创
2010-12-22 22:44:00
339阅读
为什么需要操作系统? 1.计算机是由CPU、内存、磁盘、显卡、声卡等许许多多设备组成的,而且这些设备的厂商众多,品种繁多,而且不同厂商生产的同种设备虽然完成同种功能,但是具体细节却存在千差万别; 2.为了正确地管理和使用这些设备来实现具体的应用,这样程序员就得了解和掌握各种设备的工作原理。而且对于同种设备,由于不同的硬件厂商在实现细节上的差异使得程序员再次陷入了复杂的硬件控
原创
2010-12-18 11:49:00
486阅读
[root@centos7 hello_world_c]# qemu-system-aarch64 -no-reboot -serial null -serial mon:stdio -net none -nographic -M xilinx-zynq-a9 -m 256M -kernel o-o ...
转载
2021-10-12 15:13:00
974阅读
2评论
现代计算机中内存空间都是按照字节~(Byte)~划分的。从理论上讲似乎对内存的访问可以从任何地址开始,但现实是存储在某些特别地址上的数据需要多次访问, 经过特殊处理后才能访问到。为了提高访问速度,需要数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是字节对齐~(Byte alignment)。 各个硬件平台对存储空间的处理是不同的。一些平台对某些特定类型的数据只能从某些特
原创
2010-12-29 08:30:00
338阅读
RTEMS 4.9.4 filesystem.pdf 1 Pathname Evaluation 本章介绍了~RTEMS~文件系统的路径评估过程。 %XXX包含路径的评估过程中的图示 1.1 Pathname Evaluation Handlers 有两个路径评估程序。处理程序~patheval()~用来查找,核实权限,并且返回存在节点的信息。 处理程序~e
原创
2010-12-29 08:37:00
296阅读
任务~(Task)~不是所有操作系统里都有的概念。常见的实时操作系统,如~uC/OS-II、 FreeRTOS、RTEMS~中是有这个概念的。这些操作系统有一个共同的特点,即用户 的应用程序和操作系统作为一个执行体运行在目标系统上。这里的执行体(Executive)指的是用户代码和操作系统代码编译在一起形成的 可执行文件。一般的操作系统中如~Linux、Windows~中,是没有这个概念的。
原创
2010-12-29 08:25:00
565阅读