02 2022 档案

smp raw_spinlock_t
摘要:自旋锁 + dis local cpu preemt + dis local cpu interrupt 在linux/spinlock.h中定义了spinlock操作的API。 spinlock的思想就是在SMP环境中,保护共享的数据结构;也就是CPU-A正在访问(读写)共享数据的期间,其他CPU 阅读全文

posted @ 2022-02-28 14:42 tycoon3 阅读(305) 评论(0) 推荐(0) 编辑

FreeRTOS开关中断 和临界区
摘要:FreeRTOS任务代码中临界段的进入和退出主要是通过操作寄存器basepri实现的。进入临界段前操作寄存器basepri关闭了所有小于等于宏定义configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY所定义的中断优先级,这样临界段代码就不会被中断干扰到,而且实现任务 阅读全文

posted @ 2022-02-24 20:58 tycoon3 阅读(2358) 评论(0) 推荐(0) 编辑

PendSV和SYSTICK
摘要:PendSV是可悬起异常,如果我们把它配置最低优先级,那么如果同时有多个异常被触发,它会在其他异常执行完毕后再执行,而且任何异常都可以中断它。更详细的内容在《Cortex-M3 权威指南》里有介绍,下面我摘抄了一段。 OS 可以利用它“缓期执行”一个异常——直到其它重要的任务完成后才执行动 作。悬起 阅读全文

posted @ 2022-02-24 20:31 tycoon3 阅读(602) 评论(0) 推荐(0) 编辑

C语言 函数和程序结构 宏替换#define
摘要:宏定义的形式如下: #define 名字 替换文本 这是一种最简单的宏替换 —— 后续所有出现名字记号的地方都将被替换为 替换文本 。 #define 指令中的名字与变量名的命名方式相同,替换文本可以是任意字符串。通常情况下, #define 指令占一行,替换文本是 #define 指令行尾部的所有 阅读全文

posted @ 2022-02-24 18:09 tycoon3 阅读(951) 评论(0) 推荐(0) 编辑

TencentOS tiny 中断嵌套
摘要:tos_knl_irq_enter和tos_knl_irq_leave __API__ void tos_knl_irq_enter(void) { if (!tos_knl_is_running()) { return; } if (unlikely(k_irq_nest_cnt >= K_NES 阅读全文

posted @ 2022-02-24 11:39 tycoon3 阅读(104) 评论(0) 推荐(0) 编辑

git 更改项目名称
摘要:1、修改项目名称 在项目的Settings->General->Advanced settings中,有Rename repository的操作,如下图所示把项目名称和路径中的名称同时修改。 2、修改本地仓库 对于本地已经克隆下来的仓库,修改步骤如下:1. 运行git remote查看远程仓库名称, 阅读全文

posted @ 2022-02-23 19:58 tycoon3 阅读(3144) 评论(0) 推荐(0) 编辑

NVIC中断
摘要:中断寄存器 1)ISER[8](Interrupt Set-Enable Registers):中断使能寄存器--void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);。其 中断使能寄存器共有8个,ISER[0]设置0~31号中断的使能,ISER[1]设 阅读全文

posted @ 2022-02-23 16:54 tycoon3 阅读(1603) 评论(0) 推荐(0) 编辑

Cortex-M3/4 一些调试技巧
摘要:Cortex-M3/4 一些调试技巧 今天主要总结下这段时间在没有 调试器 情况下,解决 bug 的一些辅助调试手段。 在没有 调试器 的情况下,进行代码调试的手段就只有 log 大法,为了能够尽可能详细地输出有用的调试信息,往往我们需要将 调用栈 、R0- R15 寄存器、SCB、中断状态、线程状 阅读全文

posted @ 2022-02-22 15:54 tycoon3 阅读(327) 评论(0) 推荐(0) 编辑

git commit
摘要:根据commit生成patch 可以使用如下两种方式。1. git format-patch -1 commit :生成的patch有统计信息和git的版本信息2. git diff commit_previous commit > mypatch.diff :最原始的diff信息,对于这里的com 阅读全文

posted @ 2022-02-21 15:36 tycoon3 阅读(184) 评论(0) 推荐(0) 编辑

git patch
摘要:有这样的 目录层次 x/xx/xxx/xxx/ttt.c而 我的 当前位置 是在 x/下 ,执行git diff> test.patch 在test.patch补丁文件里的路径信息是这样的:- - - a/xx/xxx/xxx +++b/xx/xxx/xxx 如果 应用 test.patch 的时候 阅读全文

posted @ 2022-02-21 15:07 tycoon3 阅读(184) 评论(0) 推荐(0) 编辑

qemu device tree uart
摘要:qemu static const MemMapEntry virt_memmap[] = { [VIRT_DEBUG] = { 0x0, 0x100 }, [VIRT_MROM] = { 0x1000, 0xf000 }, [VIRT_TEST] = { 0x100000, 0x1000 }, [ 阅读全文

posted @ 2022-02-18 19:13 tycoon3 阅读(123) 评论(0) 推荐(0) 编辑

git 切换分支更新代码
摘要:git checkout -f rv64-openamp-port Checking out files: 100% (10938/10938), done. Branch 'rv64-openamp-port' set up to track remote branch 'rv64-openamp 阅读全文

posted @ 2022-02-18 17:54 tycoon3 阅读(249) 评论(0) 推荐(0) 编辑

findnode_nofail Couldn't find node /chosen: FDT_ERR_NOTFOUND
摘要:qemu-system-riscv64 -M virt -m 512M -smp 2 -bios fw_jump.bin -kernel Image -append "rootwait root=/dev/vda console=ttyS0" -drive file=rootfs.ext2,form 阅读全文

posted @ 2022-02-18 11:53 tycoon3 阅读(722) 评论(0) 推荐(0) 编辑

rtems中断处理
摘要:arm32 中断初始化 qemu-system-arm -serial null -serial mon:stdio -nographic -M xilinx-zynq-a9 -m 256M -net tap,ifname=qtap,script=no,downscript=no -net nic, 阅读全文

posted @ 2022-02-17 11:58 tycoon3 阅读(107) 评论(0) 推荐(0) 编辑

中断中为什么不能sleep | Linux内核
摘要:在面试官:为什么在中断里不能sleep | Linux 内核一文中,作者逐层深入地讲解了为什么中断中为什么不能sleep,并给出了ISR 里处理耗时工作的解决办法,建议先行阅读。 文中把问题“中断中为什么不能sleep”逐步精确为“为什么在 Linux 里,ISR 被设计成不能睡眠”,讲得很好。但是 阅读全文

posted @ 2022-02-16 20:35 tycoon3 阅读(892) 评论(0) 推荐(0) 编辑

spinlock 和抢占
摘要:为了防止死锁,spinlock需要关中断和禁止抢占 场景分析 对于spin lock,其保护的资源可能来自多个CPU CORE上的进程上下文和中断上下文的中的访问,其中,进程上下文包括:用户进程通过系统调用访问,内核线程直接访问,来自workqueue中work function的访问(本质上也是内 阅读全文

posted @ 2022-02-16 20:25 tycoon3 阅读(809) 评论(0) 推荐(0) 编辑

objdump section
摘要:attribute有属性的含义,一般出现在代码中是用来定义“编译属性”的,当我们需要将C语言代码中的某个部分编译后链接到某个特定的段时,就需要在这个部分前面加上__attribute__((section(段名))),例如在代码中使用了__attribute__ ((section(".isr_ve 阅读全文

posted @ 2022-02-16 15:59 tycoon3 阅读(223) 评论(0) 推荐(0) 编辑

STM32 的启动
摘要:stm32专题三十八:在SRAM中调试代码 1、启动文件简介 启动文件由汇编编写,是系统上电复位后第一个执行的程序。主要做了以下工作: (1)初始化堆栈指针 MSP=_initial_sp (2)初始化 PC 指针=Reset_Handler (3)初始化中断向量表 (4)配置系统时钟 (5)调用 阅读全文

posted @ 2022-02-16 11:59 tycoon3 阅读(1150) 评论(0) 推荐(0) 编辑

PendSV
摘要:先了解下如何使用PendSV异常。(为何要使用PendSV而不是其他的异常,请参考《cortex-M3权威指南》) PendSV异常 ​ PendSV,即可悬起的系统调用,OS可以利用它缓期执行一个异常,直到其它重要的任务完成后才执行操作。触发PendSV只需往NVIC的PendSV悬起寄存器的第2 阅读全文

posted @ 2022-02-15 20:33 tycoon3 阅读(1188) 评论(0) 推荐(0) 编辑

[FreeRTOS] 临界区处理
摘要:简介 每个进程中访问临界资源的那段代码称为临界区(Critical Section) (临界资源是一次仅允许一个进程使用的共享资源)。每次只准许一个进程进入临界区,进入后不允许其他进程进入。不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。多个进程中涉及到同一个临界资源的临界区称 阅读全文

posted @ 2022-02-15 18:57 tycoon3 阅读(327) 评论(0) 推荐(0) 编辑

gcc-arm-linux-gnu和 arm-none-eabi
摘要:[root@bogon gcc-arm-embedded]# yum install gcc-arm-linux-gnu Loaded plugins: fastestmirror, langpacks Repository epel is listed more than once in the 阅读全文

posted @ 2022-02-15 16:26 tycoon3 阅读(953) 评论(0) 推荐(0) 编辑

FreeRTOS 优先级翻转与互斥信号量 (二)
摘要:优先级翻转简介: 就是高优先级的任务运行起来的效果好像成了低优先级,而低优先级比高优先级先运行。 优先级翻转如下所示: 优先级翻转过程: 为什么会发生优先级翻转? 因为两个任务(L和H)使用了同一个二值信号量,而在这两个任务之间,又有一个中等优先级的任务M,在这种情况下就容易发生优先级翻转。主要就是 阅读全文

posted @ 2022-02-15 12:03 tycoon3 阅读(474) 评论(0) 推荐(1) 编辑

ARM:FreeRTOS系统栈和任务栈
摘要:ARM:FreeRTOS系统栈和任务栈背景:ARM 有两个栈指针PSP和MSP, 通过Control 寄存器来决定SP(R13)使用哪个栈。我们下面谈论的系统栈和任务栈,就和这两个栈指针有关。 FreeRTOS 任务栈 FreeRTOS不同于裸机每个TASK都有一个任务栈。FreeRTOS的任务栈是 阅读全文

posted @ 2022-02-15 10:38 tycoon3 阅读(1391) 评论(0) 推荐(0) 编辑

FreeRTOS 信号量
摘要:信号量是操作系统中重要的一部分,信号量一般用来进行资源管理和任务同步,FreeRTOS 中信号量又分为二值信号量、计数型信号量、互斥信号量和递归互斥信号量。 1、信号量用于控制对共享资源的访问 举一个很常见的例子,某个停车场有100个停车位,这 100 个停车位大家都可以用,对于大家来说这 100 阅读全文

posted @ 2022-02-15 10:28 tycoon3 阅读(676) 评论(0) 推荐(0) 编辑

RTOS是如何“看普通中断处理的场子”的
摘要:what tos_knl_irq_enter/tos_knl_irq_leave,大多数RTOS实现都提供了类似此一对函数功能的对应接口,需要开发者主动地分别在中断服务函数(ISR)的开始(tos_knl_irq_enter)及结束时调用(tos_knl_irq_leave)。 why 为什么要设计 阅读全文

posted @ 2022-02-15 10:12 tycoon3 阅读(163) 评论(0) 推荐(0) 编辑

RTOS内功修炼记(三)—— 内核到底是如何管理中断的?
摘要:内容导读: 第一篇文章讲述了任务的三大元素:任务控制块、任务栈、任务入口函数,并讲述了编写RTOS任务入口函数时三个重要的注意点。 RTOS内功修炼记(一)—— 任务到底应该怎么写? 第二篇文章从任务如何切换开始讲起,引出RTOS内核中的就绪列表、优先级表,一层一层为你揭开RTOS内核优先级抢占式调 阅读全文

posted @ 2022-02-15 10:05 tycoon3 阅读(268) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示