- 博客(19)
- 收藏
- 关注
原创 GDB终端较小时运行停止等待输入解决办法
在使用gdb进行调试时,我们希望可以自动运行一些脚本命令,但是当打开的终端窗口界面比较小的时候,会出现如下提示,无法继续运行,需要输入c才能继续运行。--Type <RET> for more, q to quit, c to continue without paging--查询了GDB官方的文档手册,可以通过相关参数设置修改这个问题我的解决方法是下面的参数选项:--batchgdb --batch这样就可以让脚本执行一次到头...
2021-10-29 10:12:43
2291
原创 嵌入式工程师实现一个简单的操作系统(六)
以嵌入式工程师的角度来实现一个简单的操作系统!1. 前言继上节课的内容之后,我们距离激动人心的目标还剩下一小步了现在已经实现了有组织的创建任务,何为有组织,就是创建的任务都有迹可循现在该思考下一个问题?2. 继续任务调度下一个问题是什么呢?就是现在有N个任务在你面前,现在我们假设他们的任务优先级都是相同的,如何实现让他们轮流执行?也就是有N个有效任务,每次进入中断选出一个任务去执行,最终实现每个任务都可以的到运行,并且运行的时间或机会是相同的。在这个图片中...
2021-10-27 00:46:39
212
原创 嵌入式工程师实现一个简单的操作系统(五)
以嵌入式工程师的角度来实现一个简单的操作系统!1. 前言上一节我们已经实现了非常简单的操作系统任务创建、任务调度、任务切换等。你看出来了吗?我们在简单的回顾一下这些功能是怎么对应的?任务创建:/*创建一个任务*/task_init(&taska,taska_stack+sizeof(taska_stack),taska_fun);任务调度与任务切换/*在定时器中断中,进行任务切换*现在的调度策略:一共2个任务,轮流执行,每次在定...
2021-10-26 00:47:51
238
原创 Gnome shell 主题配置解析
什么是 GNOME SHELL?GNOME shell 是 GNOME 桌面的用户界面,是 GNOME 3 的关键技术。它提供了一些基本的用户界面功能,比如切换窗口,启动应用程序或者显示通知。例如Ubuntu20.04版本操作系统,使用的用户界面就是GNOME31. Gnome shell 组成GNOME shell 用户界面的一些主要组件有: 顶部菜单栏(top bar) 屏幕顶部的水平导航栏提供对一些 GNOME shell 基本功能的访问路径,比如“活动概览”,时钟和日历、.
2021-10-24 23:08:36
4271
原创 嵌入式工程师实现一个简单的操作系统(四)
一、前言上一节我们实现了2个在任务中主动调用,实现任务切换的函数接口,其具有一下几个功能: 从一个循环的任务切换到另一个循环的任务 切换回来之后,从切换之前被打断的位置继续执行 这是函数调用做不到的,函数调用只能从函数开始位置执行 但是一个操作系统,大部分的调用场景会发生在定时器中断处理中,在中断环境下,我们还需要定义并实现中断环境的任务切换。中断环境除了要保存任务的状态以外,中断本身也需要保存一些现场状态,因为中断对正常执行的程序来说,可能会发生在任意一个指令之间..
2021-10-21 00:08:09
191
原创 嵌入式工程师实现一个简单的操作系统(三)
实现2个以上的任务互相切换 目标与计划:使用最简单的操作,最低的效率,最笨的方法,实现一个操作系统 计划支持任务切换、任务调度、内存管理、任务间同步机制、任务间通信机制 修改实现方式、提升性能与效率一、任务切换的程序 今天继续学习任务切换的coding,在这之前,我阅读了rtthread的代码中qemu-arm-v9平台以及aarch64平台的部分任务切换相关的程序,并且使用单步调试跟踪了代码,有了一些基本的理解和掌握。现在就根据自己的理解,在现在的软件代码平台进行相关的实现。
2021-10-18 00:11:09
327
原创 芯片与寄存器
芯片与寄存器作为一个嵌入式开发人员,从接触第一块单片机的时候,就一定会听到一个此,叫做寄存器。单片机的很多功能都是通过配置修改寄存器来实现的。我们了解寄存器,也读写过很多的寄存器一、操作过得寄存器先回顾一下我们以前操作过得寄存器:这是一段51单片机初始化定时器的代码void TIME_Init(){ TMOD = 0x11; TL0 = 0; TH0 = 0; TL1...
2021-10-14 01:11:25
3165
原创 嵌入式工程师实现一个简单的操作系统(二)
使用最简单的操作,最低的效率,最笨的方法,去做出一个像是操作系统一样的东西然后在一步一步去改善性能,完善功能我是一名嵌入式软件开发者,从很早之前上学开始就已经了解过一些rtos的操作系统,但是因为种种原因没能深入学习下去,现在重新出发,通过已经积累的知识,参考已有的RTOS等等系统,从一个小白的思考一步步做下去本节主题:嵌入式操作系统的任务与任务切换一、前言在上一篇文章中,零零散散介绍了操作系统为什么要以任务来划分,操作系统与裸机运行的区别以及带来的优势。现在重新再回回顾一下。...
2021-10-12 22:56:22
180
原创 ubuntu 为通过源码安装的软件添加图标
一、图标描述文件1、当我们通过源码安装一个软件时候,无法通过点击图标打开该软件,在程序菜单中不会出现该程序2、我们可以自己添加一个图标描述文件为应用添加启动图标3、Ubuntu程序的默认启动图标描述文件存放在/usr/share/applications目录中,我们可以在这个目录下看到很多后缀为desktop的文件,就是对应一个个图标二、定义自己的描述文件我们新建一个图标描述文件typora.desktop在文件内添加如下描述[Desktop Entry]Version=
2021-10-11 23:31:46
572
原创 嵌入式工程师实现一个简单的操作系统(一)
操作系统中的任务与任务切换1. 为什么要有任务?我们常常见到操作系统,也常常要学习操作系统,从一个小白的角度看,任何事情都有其对立的东西,或者说事务都是一步步发展的,既然有操作系统这个东西,那么也必然有无操作系统的软件。如果大家都有学习把玩过单片机,比如51单片机或者是STM32单片机,那么应该是都有无操作系统时代这样的经历。无操作系统时代,可以看作是有一个任务的操作系统。无操作系统时,软件的流程是怎么样子的?无操作系统,裸机环境/**无操作系统:...
2021-10-10 21:32:57
367
原创 vscode arm/aarch64架构交叉调试GDB调试配置
vscode arm/aarch64架构交叉调试GDB调试配置在ubuntu环境下使用qemu进行armv8架构处理器调试开发时候,可以使用vscode配合gdb进行在线调试,查看变量和寄存器。一. 调试配置方法 在vsocde软件左侧导航界面点击 run and debug 按钮,进入到调试配置,选择创建launch.json,创建调试配置文件 vscode工具会自动创建默认的调试文件,我们需要根据实际情况修改相关内容 { // 使用 IntelliSense 了解相..
2021-10-10 20:46:30
1793
原创 嵌入式工程师实现一个简单的操作系统(引言)
一、嵌入式工程师学习操作系统的准备之路 本人是从事嵌入式软件方面,日常的软件工作都会和具体的处理器,电路板相结合。所以在思考以及去做一个操作系统的时候,除了学习操作系统本身的算法或者逻辑之外,还需要耗费很大的精力去做一些硬件的准备工作。毕竟我也更喜欢实践,希望自己的逻辑可以跑起来,看看实际的效果。1、准备一个合适的开发板硬件的准备工作需要耗费很多的资源,首先你要购买开发板,还要购买下载器。开发板还有考虑使用什么性能的,是CONTEX-M3 这种单片机,还是CONTEX-A7等一些待遇MMU、CAC
2021-09-30 17:41:12
258
翻译 树莓派 pico pio 可编程io
3.2. 开始使用PIO3.2.1. 第一个PIO程序在了解pio汇编语言的所有细节之前,我们需要花点时间看一下这件简短但是完整的应用过程: 1、加载程序到pio的指令内存 2、设置pio状态机运行程序 3、当状态机运行起来之后,与他进行互动这些操作主要需要已下几个内容:一个 PIO 程序一些 c 程序cmake file描述文件,描述这两个部分如何组成一个程序镜像然后加载到RP2040开发板3.2.1.1 PIO 编程第一个pio程序,使用pio 汇编语言.program
2021-05-14 08:30:50
2742
3
原创 记录一次使用STM32L4ER9 开发板遇到的问题
使用 stm32 L4R9 系列单片机 如果使用可PG得IO 一定记得打开VDDIO2电源 否则引脚不工作 好多东西无法正常运行
2019-05-07 20:31:47
572
原创 记录一次从stm32F1向F4移植模拟iic的困惑
通讯的IC 是FDC2214 ,在F1运行时通讯正常,移植到F4时只需要修改下引脚IO的初始化,以及输入输出方向。但是在测试时候发现了一个问题,在向FDC2214写入数据时,MSB的最高位始终无法写入 。这里是对使用F103和f407对寄存器进行读写操作的测试结果。读取寄存器数值寄存器F407F103写入初值RCOUNT_CH0347B34FB34FBSETTLECOUNT_CH0001B001B...
2018-07-12 11:15:23
6545
5
原创 ucos源码分析(一)
时间:2018.01.27 本人目前是大三学生 电子信息工程专业,在大学前俩年的时间,一直在使用和学习单片机,不过也仅仅是从51到32,马上要面临就业,最近开始学习linux ,驱动方面知识,看了几天视频,感觉看不下去了,昨晚突发奇想,下载了ucos的源码,想要分析一下这个小的嵌入式系统。本人将从头开始,通过调试追踪,对源代码进行细致分析。 希望自己可以坚持下去。开发环境是linux+ecli
2018-01-27 11:52:59
1812
原创 mini2440蜂鸣器冲突
使用友善之臂的mini2440开发板时 在学习韦东山老师的二期视频在lcd实验会有蜂鸣器一直响原因是应为在硬件设计时的不同 导致引脚冲突解决方法:找到内核的 /driver/video/s3c2410fb.c 文件 去掉与gpb0相关代码
2018-01-23 18:59:59
597
原创 ESP32 MAKE MONITOR
ESP 32 ubuntu 配置环境以后 无法启动make monitor 解决办法:重新安装pyserial 原来版本过低
2017-09-26 16:12:06
1150
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人