摘要:git clone 时选择的是SSH链接,使用HTTPS链接地址进行下载就可以啦! 更改url 将远程 URL 从 SSH 切换到 HTTPS 打开 Git Bash。 将当前工作目录更改为您的本地仓库。 列出现有远程仓库以获取要更改的远程仓库的名称。 $ git remote -v > origi
阅读全文
摘要:root@x86:/home/ubuntu/QEMU_CPUFreq_Zynq/Prebuilt_functional# gzip -d umy_ramdisk.image.gz gzip: umy_ramdisk.image.gz: not in gzip format root@x86:/hom
阅读全文
摘要:root@ubuntu:/share# gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/5/lto-wrapper Target: aarch64-linu
阅读全文
摘要:[ 3.202055] ALSA device list: [ 3.202573] No soundcards found. [ 3.261558] VFS: Cannot open root device "vda" or unknown-block(0,0): error -6 [ 3.2624
阅读全文
摘要:前言 在 Linux Kernel 里有着许多重要的资料结构,这些资料在作业系统的运作中扮演着举足轻重的角色。然而,Linux 是个多任务的作业系统,也就是在同一时间里可以同时有许多的行程在执行,所以,很有可能某个行程在依序读取 inode list,同时却又有另一个在 inode list 里加入
阅读全文
摘要:[root@centos7 rtems]# ls ./build/arm/raspberrypi/testsuites/samples/ticker.bin ls: cannot access ./build/arm/raspberrypi/testsuites/samples/ticker.bin
阅读全文
摘要:apt install g++-8-riscv64-linux-gnu
阅读全文
摘要:ubuntu@ubuntu:~/linux-5.14$ ls ./arch/riscv/boot/dts/sifive/ fu540-c000.dtsi hifive-unleashed-a00.dtb hifive-unmatched-a00.dtb Makefile fu740-c000.dts
阅读全文
摘要:bsp_interrupt_server_trigger rtems_status_code rtems_interrupt_server_handler_install( uint32_t server_index, rtems_vector_number vector, const char *
阅读全文
摘要:$ git status On branch master Your branch is ahead of 'origin/master' by 1 commit. (use "git push" to publish your local commits) error: failed to pus
阅读全文
摘要:root@ubuntu:~/arm/raspberry-pi-os/exercises/lesson05/3/bl4ckout31# make mkdir -p build aarch64-none-elf-gcc -Wall -nostdlib -nostartfiles -ffreestandi
阅读全文
摘要:重点结构体学习 struct task_struct { struct thread_info thread_info; void* stack; /* CPU-specific state of this task: */ struct thread_struct thread; } 上次在学th
阅读全文
摘要:There are two methods of receiving packets from the datalink layer under Linux. The original method, which is more widely available but less flexible,
阅读全文
摘要:汇编宏kernel_ventry 该汇编宏主要是用于异常响应向量表中,每个向量的宽度为0x80字节,即0x20条指令(每条指令4字节);而且每个向量入口点地址必须按照0x80对齐,即地址低7位为零。由于0x20条指令不可能完成异常处理过程,因此在这0x20条指令之内一定要跳转到到其他函数执行。 一般
阅读全文
摘要:1、理解整个中断/系统调用流程的关键是kernel_entry和kernel_exit,也就是如何保存现场,并且恢复现场的。 我们先来看下armv8的寄存器,PLR(X30)无论是用户态还是内核态都用这个寄存器来存储程序的返回值。 sp_el0,sp_el1分别是有用户态和内核态的堆栈。 ELR_E
阅读全文
摘要:当应用读取或写入未提交到物理内存的内存时,会发生页错误。 不可能(或很难)预测页面错误何时会发生,因此它们是计算机中不确定性的另一个来源。 幸运的是,有一个函数允许您提交进程使用的所有内存并将其锁定,这样它就不会导致页面错误。 它是mlockall(2)。 这是它的两面旗帜: MCL_CURRENT
阅读全文
摘要:如果你有精确的计时要求,那么计时器分辨率很重要,这是实时应用的典型要求。 Linux 中的默认计时器是以可配置的频率运行的时钟,对于嵌入式系统,通常为 100 Hz,对于服务器和台式机,通常为 250 Hz。 两个计时器滴答之间的间隔是,称为jiffy,在前面给出的例子中,在嵌入式 SoC 上是 1
阅读全文
摘要:root@ubuntu:~/arm/raspberry-pi3-mini-os/1.hello_world# grep Map -rn * Makefile:22: $(ARMGNU)-ld -T linker.ld -o objects/kernel8.elf $(OBJ_FILES) -Map
阅读全文
摘要:宏 (1).macro和.endm组成一个宏;(2).macro后面跟着的依次是宏名称,宏参数;(3)在宏中使用参数,需要添加前缀""; .macro add a,b //宏名称add,参数a,b (4)红参数定义时,可以设置初始值 .macro test p1=0 p2//可以用test a,b或
阅读全文
摘要:aarch64系统级体系架构之异常级别 1.简述 2.树莓派启动深度解析 3.不同异常级别需要注意的问题 1.简述 系统的异常级别对于arm芯片来说非常的重要,对于操作系统层面上来说,理解芯片的体系架构,将很容易的进入状态,随心所欲的去玩转芯片,对于做应用来说,熟悉芯片的体系架构,可以解决非常棘手的
阅读全文
摘要:ARMv8中,aarch64和aarch32是通过异常进行切换的。而A32和T32是通过bx指令进行切换的。如下图: 以下A64和A32混合编程,是在EL3为aarch64, EL2为aarch32条件下进行编程。在EL3,设置EL2的架构为aarch32,设置好返回地址,通过ERET指令,切换到E
阅读全文
摘要:spin_lock() 在Linux2.6中,spin_lock()宏有两种实现方式,一种是具有内核抢占的spin_lock(),一种是非抢占式内核中的spin_lock(),下面先看下自旋锁的数据结构,在Linux中,每个自旋锁都用spinlock_t结构表示,如下: typedef struct
阅读全文
摘要:一、简介 Ingo Molnar 的实时补丁是完全开源的,它采用的实时实现技术完全类似于Timesys Linux,而且中断线程化的代码是基于TimeSys Linux的中断线程化代码的。这些实时实现技术包括:中断线程化(包括IRQ和softirq)、用Mutex取代spinlock、优先级继承和死
阅读全文
摘要:调度器类 而依据其调度策略的不同实现了5个调度器类, 一个调度器类可以用一种种或者多种调度策略调度某一类进程, 也可以用于特殊情况或者调度特殊功能的进程. 其所属进程的优先级顺序为 stop_sched_class -> dl_sched_class -> rt_sched_class -> fai
阅读全文
摘要:进程切换有自愿(Voluntary)和强制(Involuntary)之分,在前文中详细解释了两者的不同,简单来说,自愿切换意味着进程需要等待某种资源,强制切换则与抢占(Preemption)有关。 抢占(Preemption)是指内核强行切换正在CPU上运行的进程,在抢占的过程中并不需要得到进程的配
阅读全文