
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
gcc编译选项pg在嵌入式profile中应用问题引入首先说明下,本文主要是描述下使用gcc的-pg编译选项在嵌入式的裸机或RTOS系统环境下实现一些函数级别的profile或者做代码覆盖率测试甚至实现trace功能。关于这个编译选项在GCC文档有描述,但是这里要注意一点,该选项一般来讲是配合glibc中的gprof实现完备且较为复杂的性能跟踪,而众所周知在MCU级别的嵌入式开发环境往往没有操作系
基于qemu-riscv从0开始构建嵌入式linux系统ch7. OpenSBI DomainOpenSBI Domain介绍在上一节中,我们已经成功运行了OpenSBI,观察输出log可以看到有一组Domain0的信息打印出来,然后会进入到下级boot流程。那么Domain是做什么用的呢?实际上Domain是用来将SOC内部硬件人为的划分不同权限区域,然后分别独立运行,其使用了riscv的权限管
基于qemu-riscv从0开始构建嵌入式linux系统ch6. 设备树文件与opensbi加载运行什么是设备树文件上一篇中我们反复提到了设备树文件,那么究竟设备树文件是什么样的?有什么用?该如何编写使用呢?扁平设备树(Flattened Device Tree)简称FDT,是源于linux内核powerpc架构下对驱动的抽象分装技术,早年间linux内核中充斥者大量的mach-XXX的驱动代码,
基于qemu-riscv从0开始构建嵌入式linux系统ch20. 交叉编译screen、tree、cuscreenscreen源码可以在gnu网站上下载:https://ftp.gnu.org/gnu/screen/。screen是个人非常喜欢的终端管理工具,在没有图形界面的系统中,使用screen可以实现多终端窗口管理以及酷炫的窗口分割等功能,同时也体积较小适合嵌入式环境。screen编译编译
基于qemu-riscv从0开始构建嵌入式linux系统ch21. 实时操作系统FreeRTOS移植RISCV-S模式FreeRTOSFreeRTOS在嵌入式行业内是非常出名了,这么多节过去了,我们不能忘记除了7个core上运行的linux系统外,我们还有个trusted_domain,今天我们就移植一个实时操作系统FreeRTOS到这个域中。注意这里的FreeRTOS运行在S模式上而非完全的裸机
基于qemu-riscv从0开始构建嵌入式linux系统ch2. 添加qemu仿真板——Quard-Star板增加源文件首先看下图,预览本节教程要添加的源代码,内容不多,主要是增加一个quard_star.c和.h文件用来定义我们的虚拟板卡,然后将其加入qemu编译体系内。源码解析路径qemu-6.0.0/hw/riscv/quard_star.c:(由于对应代码已上传github,我们这里仅对关
使用Qt Creator远程调试部署应用到嵌入式linux开发板最近在调试开发一款Cottex-A5的开发板上的应用,主要使用了Qt作为GUI开发应用,之前用Yocto搭建好系统发行版和主机交叉编译开发环境后,使用Qt Creator加载交叉编译好的的Qt SDK包,一般完成编译后生成可执行程序然后拷贝到开发板文件系统内执行,若需要调试还得在开发板上使用gdbserver启动调试服务然后主机连接调
基于qemu-riscv从0开始构建嵌入式linux系统ch4. 制作测试固件验证串口打印安装交叉编译器为了测试串口的使用,我们首先需要安装目标平台的交叉编译工具链,才能开始编写代码并生成固件仿真运行。交叉编译器我建议先使用bootlin上提供的riscv交叉编译工具链,链接如下:https://toolchains.bootlin.com/。下载如下版本的编译器:将其解压安装在你的任意目录,不过
基于qemu-riscv从0开始构建嵌入式linux系统ch16. Framebuffer显示设备virtio-gpu-device本节我们给qemu添加一块虚拟的显示设备,方便后面研究一些GUI的应用。由于之前我们向系统添加了8组virtio-mmio设备,并且挂载了virtio-blk-device作为文件系统存储设备,这次我们再添加virtio-gpu-device设备:$SHELL_FOL
基于qemu-riscv从0开始构建嵌入式linux系统ch8. U-BootU-Boot介绍终于我们的项目来到了u-boot,相信很多学习过嵌入式的朋友都听过或熟悉u-boot这个项目,在arm嵌入式开发中uboot常常作为二级loader甚至一级loader,用来引导linux内核。uboot早期是作为BootLoader开发的,主要功能就是loader+boot,如今的u-boot相比早期仅