SoC设计项目:在FPGA上实现M0内核及视频图像处理
# 基础介绍
# Cortex-M0
Cortex-M0 是 ARM 公司在 2009 年发布的一款处理器,它基于冯・诺依曼架构,使用 32 位的精简指令集(RISC),Cortex-M0 的架构是 ARMv6-M,其中 M 表示的是架构的指令集为 Thumb 指令集的子集,虽然 ARM Cortex-M0 和 M0 + 两种微内核属于 ARMv6 版,但发布日期却在 ARMv7 之后,ARM 为了实现使用户能够在 FPGA 上使用 ARM 处理器以及实现超低功耗的嵌入式处理器应用,综合 ARMv7 的存储器系统和编程模型等技术,支持 Thumb-2 指令集 并针对功耗做进一步优化了现有的 ARMv6 架构,开发出了 ARMv6-M 架构,
下图是 Cortex-M0 的系统框图
包括
处理器核心
寄存器组
算术逻辑单元(ALU)
数据总线
控制逻辑
三级流线设计:取指、译码、执行
0.85~1.27 DMIPS/MHz
嵌套向量中断控制器 NVIC
32 个中断请求
1 个不可屏蔽中断输入(NMI)
内部总线系统
32 位总线
目前 ARM 已经 ...
【Linux学习】RPM包管理
# 软件包简介
# 源码包
时间长,需要编译
脚本安装包
优点
开源
可以自由选择所需的功能
编译安装,所以更加适合自己的系统、稳定、效率高
卸载方便
# 二进制包
时间短,已编译,但是不能看源代码
Linux 不同系列最大的区别就是二进制包不同
RPM 包:RedHat 系列
系统默认包
# RPM 命令管理
# rpm
压缩文件至 .gz 格式(不能压缩目录)
原意:
RPM Package Manager
执行权限:
所有用户
语法:
rpm [-ivh] 包全名-i:安装install-U:升级Upgrade-e:卸载erase-v:显示详细信息verbose-h:显示进度hash-q:查询query- -i:查询安装信息 information- -f:查询系统文件属于哪个软件包 file- -R:查询软件包的依赖性 requires- -p:查询未安装包信息 package-V:检验指定RPM包中的文件Verify-a:所有all--nodeps:不检测依赖性no depends
# ...
【Linux学习】Vim使用
# 常用命令
# 插入命令
a:在光标所在字符后插入i:在光标所在字符前插入A:在光标所在行行尾插入I:在光标所在行行首插入o:在光标下插入新行O:在光标上插入新行
# 定位命令
:set nu:设置行号:set nonu:取消行号gg:到第一行G:到最后一个行:n:到第n行0:移至行首
# 删除命令
x:删除光标所在处的字符nx:删除光标所在处的后n个字符dd:删除光标所在行,ndd删除n行dG:删除光标所在行到文末的内容D:删除光标所在处到行尾的内容:n1,n2d:删除指定范围的行
# 复制和剪切命令
yy:复制当前行nyy:复制当前行以下的n行dd:剪切当前行ndd:剪切当前行以下n行p、P:粘贴在当前光标所在行下或行上
# 替换和取消命令
r:取代光标所在处字符R:从光标所在处开始替换字符,按Esc结束u:取消上一步操作
# 搜索和搜索替换命令
/string:搜索指定字符串- :set ic:搜索时忽略大小写- n:搜索指定字符串出现的下一个位置:%s/old/new/g:全文替换指定字符串:n1,n2s/old/new/g:在一定范围内替换指定字符串
# 保存和 ...
【Linux学习】命令(三):帮助、用户管理、压缩解压、网络命令
# 帮助命令
# man
获得帮助信息
原意:
manual
执行权限:
所有用户
语法:
man [命令或配置文件]查看配置文件时不需要加上绝对路径1:命令的帮助5:配置文件的帮助
# whatis
显示命令的简要描述
执行权限:
所有用户
语法:
whatis [命令]
# apropos
显示配置的简要描述
执行权限:
所有用户
语法:
apropos [配置文件]
# info
读取 info 信息
执行权限:
所有用户
语法:
info [命令或配置文件]
# help
获得 Shell 内置命令的帮助信息
命令所在路径:
Shell 内置命令
使用 which 或其他查找命令找不到信息 的命令即为 Shell 内置命令
执行权限:
所有用户
语法:
help [命令]--help(非命令)
语法: [命令] --help
# 用户管理命令
# useradd
添加新用户
命令所在路径:
/usr/sbin/useradd
执行权限:
root
语法:
useradd [用户名]
# pa ...
【Linux学习】命令(二):文件权限管理、查找命令
# 权限管理
# 文件目录权限
目录
r:可以列出目录中的内容
w:可以在目录中创建文件、删除文件
x:可以进入目录
文件
r:可以查看文件内容
w:可以修改文件内容
x:可以执行文件
# chmod
改变文件或目录的权限
原意:
change the permissions mode of a file
语法:
chmod [ { ugoa }{ +-= }{ rwx } ] [ 文件或目录 ]chmod [ { mode = 421 ] [ 文件或目录 ]-R:递归修改
# chown
改变文件或目录的所有者
原意:
change file ownership
语法:
chown [用户][文件或目录]
# chgrp
改变文件或目录的所属组
原意:
change file group ownership
语法:
chgrp [用户组][文件或目录]
# umask
显示、设置文件的缺省权限
原意:
the user file-creatio ...
【Linux学习】命令(一):文件处理命令
声明: 这个模块的所有文章是我两年前的学习记录,使用的 Linux 系统是 Cent OS,如果要自己使用请尽量查询后再考虑是否使用
# 目录处理命令
# ls
显示目录下文件
原意:
list
命令所在路径:
/bin/ls
执行权限:
所有用户
选项:
ls 选项[-ald] [文件或目录]-a:显示所有文件,包括隐藏文件-l:详细信息显示-d:查看目录属性-h:人性化显示- 文件属性 — 被调用次数 — 所有者 — 所属组 — 大小 — 最后修改时间 - x — xxx — xxx — xxx - 文件类型 — 所有者 — 所属组 — 其他人 - -:二进制文件 - d:目录 - l:链接文件 - r:读 - w:写 - x:执行-i:文件ID号
# mkdir
创建新目录
原意:
make directories
命令所在路径:
/bin/mkdir
执行权限:
所有用户
语法:
mkdir -p [目录名] [目录名] ...-p:递归创建(一次性连续创建)
# cd
切换目录
原意:
change direc ...
【Ubuntu】双系统安装记录(九):卸载GTK+3导致GNOME崩溃
# 卸载 GTK+3 导致 GNOME 崩溃
# 概述
最近运行一个软件需要用到 gtk 环境,下载 gtk+3 不能使用,打算卸载重装 gtk+2,卸载后 gnome 疑似崩溃:
开始界面很多图标消失
终端变成了 XTerm
大多数功能仍能使用(小组件也可以)
重启过后进入不了图形界面
卸载 gtk+3 后 Ubuntu 无法进入图形界面
运行过以下命令
sudo apt autoremove libgtk-3-0sudo apt autoremove libgtk-3-dev
# 原因
可能的原因是 GTK 是 GNOME 的一个依赖库
# 解决办法
卸载 gnome 并重装
sudo apt updatesudo apt upgradesudo apt autoremove gnomesudo apt install gnome
# 参考资料
ubuntu 进不去图形化界面系统解决方案_haley.du 的博客 - CSDN 博客
【Ubuntu】双系统安装记录(八):游戏手柄库安装
# 游戏手柄
# 概述
Python 开发游戏时想加入手柄
# 驱动安装
# 安装 xbox 驱动sudo apt install xboxdrv# 安装 ps3 驱动sudo apt install joy2key# 安装手柄测试软件sudo apt install joystick
# 检测设备
查看设备信息
cat /proc/bus/input/devices
在输出中找到游戏手柄对应的信息
查看数据输出
cat dev/input/js0 | hexdump
检测手柄事件,会实时更新在输出窗口
测试手柄
jstest
# 参考资料
在 UBUNTU 中使用北通 USB 游戏手柄_rongchun.ji 的博客 - CSDN 博客_ubuntu 安装北通游戏手柄驱动
xbox one 无线手柄在 ubuntu 下的对接开发_xboxdrv_Embedded engineer 的博客 - CSDN 博客
【Ubuntu】双系统安装记录(七):安装微信和百度网盘
# 安装微信
# 概述
最近转手机文件太麻烦了,所以安装一个微信
# 更新 apt
sudo apt update
# 添加 deep-wine 仓库
wget -O- https://deepin-wine.i-m.dev/setup.sh | sh
# 安装微信
sudo apt-get install com.qq.weixin.deepindeep-wine 支持应用列表
# 问题
下载失败
apt install 失败,并未遇见,但是记录一下
可能会出现以下报错信息
sudo apt-get install com.qq.weixin.deepin正在读取软件包列表... 完成正在分析软件包的依赖关系树... 完成正在读取状态信息... 完成 有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件包尚未被创建或是它们已被从新到(Incoming)目录移出。下列信息可能会对解决问题有所帮助:下列软件包有未满足的依赖关系: libldap-2. ...
【Ubuntu】双系统安装记录(六):安装网易云音乐、安装locate命令
# 安装网易云音乐
# 特别说明
根据网上的教程安装出现了一些问题:
参考 Ubuntu22.04 安装网易云音乐实操笔记_LeiBris 的博客 - CSDN 博客_ubuntu 音乐的步骤能进入用户界面,但是会报错
参考解决 Failed to load module canberra-gtk-module 错误_footrip 的博客 - CSDN 博客_libcanberra-gtk-module 中的解决办法,进入不了界面,但是如果只是把动态库文件放到了网易云库文件夹下,其他步骤按照上一个参考中做就没有问题
我感觉这两个的区别就是
第一个:使用系统内置的 /lib/x86_64-linux-gnu/ 的库文件,但是由于系统更新有几个库文件缺失,所以会导致能进但是某些功能受限导致卡死
第二个:教程上感觉是补全缺失的动态库文件,然后让软件直接使用自己的库文件,但是会导致进入不了界面,不知道
最后综合了两个教程的方法,最后能正常进入,且运行中没有再发生卡死的情况,根据结果来看,我认为把缺失的动态库添加到软件自带的库中,在启动脚本中再增添系统内置库的路径, ...