自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

知识应该被分享。

一个工程师的自我成长之路,分享记录所学所思。

  • 博客(55)
  • 资源 (8)
  • 收藏
  • 关注

原创 [EDK II] Package的结构、配置和编译

本文就对Package做一个简单介绍。相信读了本文,读者应该会对Package有更深的了解。

2024-03-15 23:30:39 772

原创 【EDK II】作为UEFI的实现,EDK II 的架构是什么样的

基本输入输出系统 (Basic Input Output System, BIOS) 最早由 IBM(International Business Machines Corporation) 公司于1981年提出并开发,后来成为个人计算机(PC)的标准固件接口。

2024-03-11 00:02:24 848

原创 为何说 No 沙 No Die ?

Die 便是从晶圆(Wafer) 上切割下来的一个个小方块。CPU厂商通常会将1个或多个CPU Die 封装起来形成一个大的 CPU Package。Die 的尺寸越大,良品率越低,价格越贵,比如 Intel的Xeon就是将一个CPU实现在单个Die上。

2024-02-29 23:38:36 820

原创 BIOS/UEFI一定运行在多核CPU中 APIC ID 为0的Core上吗?

本文简单介绍了多核CPU的AP和BP,UEFI运行在哪个BP上,以及UEFI如何切换等知识。

2024-02-09 23:16:42 870

原创 CPU的Core和Uncore? P Core & E core ?

好啦,本文的分享到这里就基本结束啦。x86架构CPU的发展脉络CPU的Core和Uncore架构CPU的大小核机制后面,笔者也会针对Uncore的部分组件,如Cache等进行专门的介绍,欢迎大家及时查看~好,相信通过本文的分享,大家应该对CPU有了更深的了解了吧。以后当同事问你知不知道CPU的Core和Uncore,大小核时,你应该不至于一脸懵逼了吧哈哈。你知道如何关闭电脑的小核吗?Win10有大小核调度机制吗?Win11呢?如果大家觉得本文有帮助话,还请。

2024-02-05 15:55:05 992

原创 CISC&RISC? CPU架构有哪些? x86 & ARM?

终于看完了,真是收获满满啊,不过你不会真的以为,本文的内容就到此结束了吧?我只能说,Too young too simple.都2021年了,还把x86和ARM归为CISC和RISC?- 知乎 (zhihu.com)反正笔者看完后,就一个反应:合着我写的都完全过时了,白写了是吧!但是细细想来,也不全是,毕竟自己还是对RISC、CISC以及各种CPU芯片的历史、架构和应用有了一个大致、朦胧的了解,不至于一无所知,完全抓瞎。如果读者也和我一样,那么本文的目的便达到了。笔者后续也会尽量对本文内容进行更新。

2024-02-05 11:07:19 1485

原创 Ubuntu 20.04下配置 HAL 汇编开发环境教程

Ubuntu 20.04 下 HAL 高级汇编环境配置教程。

2022-05-08 09:01:42 479

原创 浅析TMS320F28035的GPIO模块

浅析了TMS320F2803的GPIO模块知识。

2022-01-13 16:07:13 2317

原创 浅析DSP28035的看门狗模块

目录背景工作原理结构与寄存器代码实验结果总结背景嵌入式系统通常会使用DSP来实现控制功能,比如开关电源的数字控制。试想如果DSP中程序出现Bug、崩溃、跑飞了怎么办?如果不及时处理,这对整个嵌入式系统的危害将是不可预料的。这时,我们就需要DSP具有一种保护机制:检测程序是否正常运行,如果不正常,就要采取某种保护措施。其实,不止DSP具有这种机制,大多数嵌入式系统的微处理器为了保证产品的可靠性,都具备这种功能。这种保护机制就是看门狗(Watch Dog)。接下来就来聊聊TI 的TMS320F280

2022-01-13 14:21:52 7606 6

原创 基于28035的ePWM触发ADC采样设计

目录前言实验目的实验要求硬件电路实验步骤代码解释结果显示总结前言笔者最近在做一个开关电源项目,需要用到TI 的TMS320F28035 芯片,实现控制电路的设计。简单来说就是利用28035采集信号量,经过算法计算,得到占空比,然后利用ePWM模块输出PWM波来控制功率开关管的导通和关断,从而实现拓扑的功率变换。为了实现控制,我们需要在一个开关周期(PWM周期)内实现ADC采样,占空比计算等。那么,如何实现一个开关周期内的ADC采样呢?答案是利用ePWM模块在每个PWM周期内去触发ADC模块进行采样,

2022-01-13 13:55:39 9125 8

原创 OS——进程与线程

文章目录进程与线程进程进程的特点进程的模型进程的创建进程的终止进程的状态进程的切换进程的实现进程的合作线程为什么有线程?线程的使用经典的线程模型POSIX线程用户级线程内核级线程混合实现调度程序激活机制进程与线程的比较进程间通信竞争条件临界区忙等待的互斥信号量互斥量管程调度调度时机调度算法分类调度目标和算法小结参考资料进程与线程想要了解操作系统是如何设计的? 那得先了解进程。操作系统的所有内容都是围绕着进程的概念展开的,包括由此衍生出来的线程。进程首先了解两个概念:并发:在同一时间段内,多个事件

2021-06-16 17:23:08 1193

原创 OS——死锁

文章目录死锁(Deadlock)资源死锁参考资料死锁(Deadlock)在计算机系统中有很多独占性的资源,在任一时刻它们都只能被一个进程使用。因此,操作系统都具有授权一个进程(临时)排他地访问某一种或多种资源的能力。软硬件资源都有可能出现死锁。大部分死锁都和资源有关,那什么是资源?资源什么是资源?资源就是随着时间的推移,必须能获得、使用、以及释放的任何东西,包括硬件和软件。资源的分类资源可分为两类:可抢占的(preemptable)和不可抢占的。可抢占的:资源在别的进程手中,可强抢,

2021-06-16 10:13:41 190

原创 RTX线程通信之——线程标志

文章目录Thread Flags概念RTX线程标志API案例:LED灯同步闪亮小结参考资料Thread FlagsIn a real application, we need to be able to communicate between threads in order to make an application useful. To this end, a typical RTOS supports several different communication objects which

2021-06-10 21:32:12 2384

原创 RTX线程通信之——信号量

本文目录Semaphores概述RTX信号量API原理生产者-消费者模型使用步骤小结参考资料Semaphores信号量是操作系统中极为重要的概念,它实现了线程之间的同步资源访问。概述Semaphores are used to manage and protect access to shared resources. Semaphores are very similar to Mutexes. Whereas a Mutex permits just one thread to access

2021-06-08 10:32:58 787 2

原创 RTX线程通信之——互斥锁

文章目录Mutex概念RTX互斥锁API互斥锁使用步骤小结参考资料Mutex互斥锁(Mutex)是线程间实现资源同步的重要机制之一。概念Mutex stands for “Mutual Exclusion”. In reality, a mutex is a specialized version of semaphore. Mutual exclusion (widely known as Mutex) is used in various operating systems for resou

2021-06-07 16:47:26 936

原创 RTX线程通信之——消息队列

文章目录Message Queue消息队列RTX 消息队列 API使用案例小结参考资料Message Queue我们知道,Thread and Event Flags、Semaphore,Mutex等通常用于触发线程的执行,并没有涉及到如何在两个线程之间交换数据。RTX提供了两种机制用于线程之间的数据传输。一个是消息队列(也称为管道),一个是邮箱队列(也称为内存池)。它们之间的区别在于消息队列一次传输一个整型或指针变量,而邮箱队列一次‘’传输‘’一个数据块。当然,本文的主人公是: 消息队列消息队列

2021-06-07 11:17:27 1658

原创 RTX 线程通信之——内存池

文章目录Memory Pool为什么需要内存池?什么是内存池?RTX内存池API案例: 按键控制LED灯定义相关创建相关执行相关实验效果小结参考资料Memory Pool内存池同消息队列一样,可以通过它实现线程间的数据传输。为什么需要内存池?有人说,有了消息队列,咱还要设计一个内存池干嘛,吃饱了没事干啊~,别说,还真不是!确实,我们可以设计消息队列(Message Queue)来进行线程间的大量数据传输,从而实现线程间通信(Inter-Thread-Communication)。但别忘了,消息队列

2021-06-05 21:13:05 1153 8

原创 RTX之——时间管理

目录时间管理延时函数虚拟定时器时间管理As well as running your application code as threads, the RTOS also provides some timing services which can be accessed through RTOS system calls.RTX提供了一些时间服务,用户可以通过系统调用来使用它们。延时函数最常见、最基本的时间服务当然是延时函数了。RTX有两种延时函数:相对延时,绝对延时。相对延时void

2021-06-02 17:32:09 1138

原创 RTX之——内存管理

目录内存管理内存分配模型全局内存池对象专用内存池静态对象内存池小结参考资料内存管理在创建一个线程的时候,我们会为该线程专门分配一个栈,称之为线程栈,用于线程切换时保存相关数据。这个栈区别于微处理器本身的栈。线程栈(thread stack)是一块内存。线程栈的默认大小定义在RTOS配置文件RTX_Config.h中,当然我们也可以在线程属性结构体中自定义线程栈的大小。有关线程的知识,请见:☞多线程-RGB_LED灯闪烁要自定义线程栈大小,首先得知道RTX的内存分配模型。内存分配模型keil RT

2021-06-01 14:43:30 1296 1

原创 多线程-RGB_LED闪烁灯

目录线程RTX Thread API实验:RGB灯闪烁准备配置线程编译运行小结开始学习线程之前,你可能需要复习:为什么使用RTOS?RTX系统移植如果准备就绪,那么,进入正题!线程线程概念In CMSIS-RTOS2, the basic unit of execution is a “Thread”. A Thread is very similar to a ‘C’ procedure but has some very fundamental (根本的)difference

2021-05-31 22:09:17 1489

原创 为什么使用RTOS?

目录为什么使用RTOSRTX 资源概览为什么使用RTOS(Real-Time Operating System,RTOS)即实时操作系统,通常应用于嵌入式等对实时性要求较高的产品中。由于嵌入式产品对资源,功耗很敏感,所以RTOS也具备可裁剪、低功耗、资源占用率低等特点。相对于通用的分时操作系统,如linux,Windows而言,RTOS更强调实时。何谓分时?简单地说就是,多个任务,交替占用系统资源,而不关心每个任务具体占用了多少时间,一切由操作系统调度。何谓实时?简单地说就是,一个任务必须在规定的时

2021-05-31 21:41:41 1414

原创 FREERTOS移植STM32F407

FREERTOS移植STM32F407获取FREERTOS源码从github上下载:FREERTOS源码创建基础工程1.利用Keil 5 创建一个STM32基础工程,建议直接使用任何一个STM32库模板。在基础工程中创建一个文件夹FREERTOS,用来存放FreeRTOS源码,该源码存放在下载的source文件夹下,然后删除不需要的文件。我们用到的文件如下:其中port.c文件来自portable\RVDS\ARM_CM4F目录,heap_4.c来自portable\MemMang目录

2021-05-22 19:46:12 1696 1

原创 RTX移植STM32F103,超详细~

目录RTX移植前言移植1.创建工程2. 配置工程3. 添加LED文件4. 编写测试代码5. 编译烧录RTX移植前言keil RTX是一款应用广泛的嵌入式RTOS,具体可见官网。为什么需要RTOS,因为产品需要实时性。没有操作系统的传统编程方式,我们称为裸机编程,即在一个while大循环中,进行任务的轮询,偶尔采用中断来处理突发事件,这便导致任务之间常常需要固定的等待,实时性不高。在RTOS中,我们不再采用轮询这种方式,而是将程序分解为多个任务,然后由操作系统负责调度各个任务的执行,选择了合适的调度算法

2021-05-22 17:19:33 3307 17

原创 C++——静态成员详解

有时候,类需要它的一些成员与类本身直接相关,而不是与类的各个对象保持关联,而这就是静态成员。本质:静态成员与类本身直接相关,而不与类对象保持关联,除此之外,它和其他类成员基本一样。静态成员包括:静态成员数据,静态成员函数如何声明?在成员声明之前加上static关键字。class A {public: // or private static int a; // 静态成员数据声明,也是定义 static int func(); // 静态成员函数声明

2021-05-08 13:11:07 333

原创 求单词序列中某个单词的连续重复出现的最大次数

文章目录题目分析测试程序小结题目编写一段程序,从标志输入中读取若干string对象并查找连续重复出现的单词。所谓连续重复出现的意思是:一个单词后面紧跟着这个单词本身。要求记录连续重复出现的最大次数以及对应的单词。如果这样的单词存在,输出重复出现的最大次数;如果不存在,输出一条信息说明任何单词都没有连续出现过。例如,如果输入是:how now now now brown cow cow那么输出应该表面单词 now连续出现了3次。分析题目要求我们记录连续重复出现的最大次数和单词。那么,我们就需要

2021-02-16 17:24:16 372

原创 ROS通信机制——发布/订阅者模型

目录发布/订阅者模型(一)发布者(二)订阅者(三)综合参考资料ROS (Robot Operating System),即机器人操作系统,是为了加快机器人的开发效率,提高机器人软件代码的复用率,用于机器人算法快速仿真验证的一个软件平台。ROS已经成为机器人领域的一个普遍标准。换句话说,未来的任何一个机器人工程师都必须会ROS,越来越多的机器人也将基于ROS来进行开发。ROS主要可以由以下四个部分组成: ROS = 通信机制 + 开发工具 + 应用功能 + 生态系统。通信机制:ROS的通信机制属

2021-01-28 22:21:49 5700 1

原创 ROS配置opencv

目录下载Opencv查看Cv2下载Opencv下载Opencv之前,确定自己的python版本,然后再确认自己想安装的opencv-python版本(不要默认,劲量指定,因为默认是安装最新的opencv-python版本,这就有可能导致与你安装的python版本不匹配)选择国内镜像源进行安装,这里选择清华镜像源。python2pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python==4.2.0.32上面我指定了

2021-01-18 09:49:53 611

原创 cannot open shared object file: No such file or directory

问题描述解决方法执行以下命令:sudo cp libs/x64/libmsc.so /urs/loacl/libsudo ldconfig结果

2020-12-17 21:06:01 137

原创 fatal error: alsa/asoundlib.h: No such file or directory

问题描述ROS版本:NoeticUbuntu20.04学习古月《ROS理论与实践》第八讲“机器人语音交互”时需要下载科大讯飞的SDK,在Linux下编译时报错:解决方法打开终端,执行以下指令sudo apt-get install libasound2-dev参考博客参考博客...

2020-12-17 20:27:23 514

原创 浅记XACRO And Gazebo仿真建模

目录浅记XACRO And Gazebo仿真建模一、XACRO1.【常量定义】2.【宏定义】3.【文件包含】二、ROS_CONTROLros_control是什么?1.添加【惯性参数和碰撞属性】2.添加【gazebo标签】3.添加【joint传动装置】4.添加【gazebo控制器件】5.添加【机器人模型】三、Gazebo物理环境设置1.直接在gazebo中添加环境。2.通过Building Editor插件浅记XACRO And Gazebo仿真建模一、XACROURDF是机器人模型描述的统一格式,但

2020-12-17 17:33:17 563

原创 ROS noetic踩坑系列之---------Module tensorflow has no atttribute XXX

在学习古月老师《ROS理论与实践》课程第7讲“机器视觉处理”时,我们需要用到tensorflow。好不容易下载好tensorflow后,当我们调用tensorflow_object_detector时,又会出现各种个样的错误。其实,这里主要是tensorflow版本的问题,我们下载的tensorflow版本和古月老师提供的两个功能包不兼容。即,tensorflow2.0不兼容tensorflow.1.0。原代码:tf.xxxx改为:tf.compat.v1.xxxx即兼容tensorflo

2020-12-14 16:42:59 382

原创 gazebo视角调整

看见上图中的橘黄色的图标了吗?点击下拉框,就可以调整自己的视角,然后配合Ctrl+鼠标拖拽就OK了。参考博客参考一

2020-12-13 19:21:51 2144 1

原创 ROS Noetic踩坑系列------gazebo非正常退出

目录原因解决参考博客运行gazebo时出现以下错误:gazebo-2] process has died [pid 93474, exit code 255, cmd /opt/ros/noetic/lib/gazebo_ros/gzserver -e ode worlds/empty.world __name:=gazebo __log:=/home/nqw/.ros/log/e0ce3022-3d29-11eb-9efc-1bf26f45e3f4/gazebo-2.log].log file: /

2020-12-13 18:09:40 2009

原创 ROS Noetic踩坑系列之-------No Link elemnt........

这里写自定义目录标题前言正文参考博客前言首先,能看到这篇文章,说明咱们都是一起踩坑的兄弟!给你一个大大的拥抱!说一句,兄弟,你不是一个人,我们与你同在!早在学习ROS之初,古月老师就建议我们安装ubuntu18.04,以及对应的ROS版本,但是我一想着20.04都出来了,不是最新,心里实在不爽。这不,这会教我做人。回归正题。正文在学习古月居《ROS理论与实践》课程第6讲的时候,我们会用到gazebo,用来加载我们的机器人仿真模型。xacro格式是urdf格式的升级版,我们要踩的坑也在这里。x

2020-12-13 17:34:27 582 3

原创 URDF机器人建模

文章目录1.机器人的定义2.机器人的组成3.URDF建模4.URDF机器人实战参考文献1.机器人的定义各个国家对机器人的定义各不相同,但总体上,机器人是指能够自动或通过编程的方式协助人类处理一些任务的机械装置。2.机器人的组成机器人通常可以由四大部分组成:控制系统、驱动系统、执行机构和传感系统。每个部分功能相对独立,但又密切联系。对于没有实物机器人的我们,该怎么学习机器人呢?有人说可以通过仿真环境搭建机器人的模型,那么如何通过代码来搭建我们的机器人仿真模型呢?那就得请我们今天的主角-----UR

2020-12-10 22:53:55 2544 2

原创 robot_state_publisher不能正常启动的解决之法

问题描述在跟着古月老师学习ros的过程中,在URDF章节,会遇到执行launch文件时,不能正常启动robot_state_publisher节点的错误。原因launch文件中,robot_state_publisher节点标签中的type="state_publisher"应该是type=“robot_state_publisher”。...

2020-12-08 20:08:54 2504 3

原创 Recording and Replaying Messages

ROS中用 .bag 文件来记录和复现消息,其机制是rosbag通过订阅相应的话题来实现记录对应的消息。记录1.记录指定话题 rosbag record -O file_name.bag topic_names常用。2.记录全部话题rosbag record -a慎用,会造成bag文件很大。3.压缩记录全部话题rosbag record -j使用Ctrl+C结束记录。复现rosbag play file_name.bag查看bag文件信息rosbag info file

2020-12-07 14:04:52 237

原创 Logistic回归算法实战

实战——预测病马的死亡率前面,我简单介绍了「Logistic分类器」。Logistic回归算法今天,我们将进行实战操练:使用Logistic分类器来预测患有疝病的马的存活率。疝病是描述马胃肠痛的术语。引发该病的因素(这里就是样本特征值)有很多。一、数据集原始数据集来源2010年1月11日的UCI机器学习数据库。该数据集包含368个样本和28个特征。由于该数据集中有30%的值是缺失的,所以我们需要处理数据集中的缺失值。几种可选的做法如下:1.使用可用特征的均值来填补缺失值。2.使用特

2020-07-18 20:33:33 1143

原创 机器学习算法——「Logistic回归」

一、前言首先,我们要知道,什么是Logistic回归?查阅度娘得到:Logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘、疾病自动诊断和经济预测等领域。参考:百度百科-Logistic回归看了上面的定义,有人可能要问了,那什么是广义线性?什么是回归分析呢?首先,这里的线性是广义的,不是我们通常所说的“狭义线性”。狭义线性模型(Linear Model): 通常指自变量和因变量之间按比例,成直线的关系。广义线性模型(Generalized Line

2020-07-17 22:17:54 2209

原创 浅谈网上各种试卷答案的正确性问题

最近,我忙着准备电子科大的研究生复试,复试科目是“微机原理”,参考书目是:《微处理器系统结构及嵌入式系统设计(第二版)》 李广军 电子工业出版社。在复习电子科大往年的真题试卷时,我发现我买的资料给的真题答案貌似有问题。然后,我又在百度、豆丁上面去搜,结果和试卷答案一模一样。我初步估计可能这个资料就是从网上下载下来的,没有进行任何校正。豆丁书房真题及答案如下:这道题考的是流水线的性能指标:吞吐...

2020-03-15 21:44:26 454

RTX移植STM32F103C8T6.rar

RTx是一款应用广泛的实时操作系统,本资源包含了RTX5 移植到STM32F103C8T6的成功源码,以及超详细的移植教程,欢迎下载,任何问题,博客联系~

2021-05-22

FREERTOS移植STM32F407.rar

FreeRTOS移植到STM32F407,实现一个简单的流水灯功能,并附带移植教程和移植成功后的源码,欢迎下载,有任何疑问,博客联系~

2021-05-22

无感无刷直流电机电调设计

很好的学习直流无感无刷电机的资料哦,讲的很浅显易懂。

2018-09-19

simulink之基于模型开发的嵌入式设计

如今基于模型的开发已经是一种趋势,而matlab/simulink是很好的搭建模型的工具,开发嵌入式必备。

2018-09-19

三路抢答器课程设计报告

该文档是我的单片机课程设计----三路抢答器。该设计历时两周,里面有我详细的设计步骤和源码。开发板是普中科技的黄色小盒子,源码基于此款开发板。

2018-06-18

51单片机实验程序(汇编语言)

这里面有四个用汇编语言编写的51单片机程序,希望对大家有所帮助!

2018-05-13

数电实验报告

这是我做的一些数电实验。里面有具体的设计思路和一些仿真结果,希望对你萌有所帮助!

2018-05-13

数电实验设计思路

这是我用Multisim仿真数电实验的一些设计思路,希望对大家有帮助1

2018-05-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除