- 博客(227)
- 资源 (9)
- 收藏
- 关注
原创 Cortex-M系列
Cortex-M系列处理器广泛应用于嵌入式系统、工业控制、汽车电子、消费电子、医疗设备等各个领域。每个系列的处理器都有自己的特点和适用场景,可以根据具体需求选择合适的型号。同时,ARM持续对Cortex-M系列进行改进和升级,以满足不断发展的市场需求和技术挑战。ARM Cortex-M系列是专为嵌入式系统和微控制器设计的一系列处理器架构,具有较低的功耗和较高的性能。
2023-07-31 20:01:21
1075
转载 ECDSA加密算法
1、选择一条椭圆曲线Ep(a,b),和基点G;2、选择私有密钥k(k<n,n为G的阶),利用基点G计算公开密钥K=kG;3、产生一个随机整数r(r<n),计算点R=rG;4、将原数据和点R的坐标值x,y作为参数,计算SHA256做为hash,即Hash=SHA1(原数据,x,y);5、计算s≡r - Hash * k (mod n)6、r和s做为签名值,如果r和s其中一个为0,重新从第3步开始执行。
2023-05-19 15:46:04
2104
原创 CoreMark
本文将介绍使用CoreMark测试程序对我们小组自研芯片进行性能的测试,记录了CoreMarK工具的使用以及对其测试结果进行分析测试环境:PC OS: Ubuntu20.04 LTSCPU: 自研CPU(ARCH=riscv64,ISA=rv64imafdc)Kernel: CPU使用的内核为Linux4.15CoreMark: CoreMark v1.01GNU: riscv64-unknown-linux-gnu1、CoreMark简介 CoreMark是由EEMBC(Embed.
2022-04-25 10:13:41
2780
转载 环境变量修改export PATH的三种方法
环境变量修改export PATH的三种方法梵居小镇关注赞赏支持环境变量修改export PATH的三种方法查看PATH:echo $PATH以添加mongodb server为列修改方法一:export PATH=/usr/local/mongodb/bin:$PATH//配置完后可以通过echo $PATH查看配置结果。生效方法:立即生效有效期限:临时改变,只能在当前的终端窗口中有效,当前窗口关闭后就会恢复原有的path配置用户局限:仅对当前用户修改方法二
2022-04-20 20:10:34
27563
转载 ld链接文件分析及一次bug解决过程
问题描述原子板的代码中含有一个关于使用外部SRAM的功能,由于本人的开发板的SRAM只有512K,因此稍微修改了一下代码,同时使用GCC进行编译,但是这里却报错了,源码如下://内存池(4字节对齐)__align(4) u8 mem1base[MEM1_MAX_SIZE];__align(4) u8 mem2base[MEM2_MAX_SIZE] __attribute__((at(0x68000000))); //外部SRAM内存池__align(4) u8 mem3base[MEM3_M
2022-04-14 10:03:24
5245
5
转载 Repo介绍
1. 概要repo是Android为了方便管理多个git库而开发的Python脚本。repo的出现,并非为了取代git,而是为了让Android开发者更为有效的利用git。Android源码包含数百个git库,仅仅是下载这么多git库就是一项繁重的任务,所以在下载源码时,Android就引入了repo。 Android官方推荐下载repo的方法是通过Linux curl命令,下载完后,为repo脚本添加可执行权限: $ curl https://storage.googleapis.c
2022-04-08 20:55:24
4078
原创 BFD: libncurses.so.5: cannot open shared object file: No such file or directory
1.sudo apt install apt-file2.sudo apt-file update3.sudo apt-file find libncurses.so.54.sudo apt install libncurses5
2022-04-08 17:48:58
2244
转载 pip安装总是失败怎么办? 3个方法帮你解决
想必刚接触Python的小伙伴一定被安装库折磨惨啦… …都说pip install XX要安装啥就安装啥,为啥到我这就不行了呢??难道Python在搞我?!?!不不不,消消气,其实不赖Python,也不赖pip,主要赖网速。因为下载的服务器在国外,所以网速特别慢,一不注意就报错了…那怎么办呢?这里我教大家3种方法,以后遇上报错就不怕了。镜像安装既然国外的服务器网速不好,那国内有没有可以下载的服务器呢?当然有!清华大学就有个镜像地址:https://pypi.t
2022-04-07 20:22:35
12692
2
转载 Git常用命令及方法大全
Git常用命令及方法大全下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库本地分支关联远程git branch --set-upstream-to=origin/分支名分支名代码库修改密码后push不上去怎么办? // 重新输入密码 git config --system --unset cred.
2022-03-12 17:18:26
296
转载 rt_thread 虚拟文件系统
虚拟文件系统在早期的嵌入式系统中,需要存储的数据比较少,数据类型也比较单一,往往使用直接在存储设备中的指定地址写入数据的方法来存储数据。然而随着嵌入式设备功能的发展,需要存储的数据越来越多,也越来越复杂,这时仍使用旧方法来存储并管理数据就变得非常繁琐困难。因此我们需要新的数据管理方式来简化存储数据的组织形式,这种方式就是我们接下来要介绍的文件系统。文件系统是一套实现了数据的存储、分级组织、访问和获取等操作的抽象数据类型 (Abstract data type),是一种用于向用户提供底层数据访问的机制
2021-05-17 09:47:40
2712
转载 sct文件编写与使用
sct文件的编写与使用参考资源1. 分散加载文件浅释.pdf。(周立功工程技术笔记)1. DUI0377G_02_mdk_armlink_user_guide.pdf(在keil的帮助文档中可以找到)我们都知道,编译器在生成可执行文件时,先将每个.c文件编译成.o文件(此过程叫编译),然后将很多个.o文件链接成可执行文件(此过程叫链接)。在链接的过程中,会用到一个描述文件,用来指定链接时的行为。这个描述文件叫做链接文件,如linux下的.ld文件,keil中的分散加载文件(.sct文件)。这篇
2021-05-15 17:11:29
5857
转载 运行RT-Thread动态模块
RT-Thread 动态模块组件dlmodule提供了动态加载程序模块的机制。dlmodule 组件更多的是一个 ELF 格式加载器,把单独编译的一个 elf 文件的代码段,数据段加载到内存中,并对其中的符号进行解析,绑定到内核导出的 API 地址上。动态模块 elf 文件主要放置于 RT-Thread 下的文件系统上。RT-Thread 的动态模块组件目前支持两种格式:.mo 则是编译出来时以 .mo 做为后缀名的可执行动态模块。它可以被加载,并且系统中会自动创建一个主线程执行这个动态模块中的 .
2021-05-11 10:46:18
4433
转载 RT-thread内核之IO设备管理系统
RT-Thread系统的IO设备管理模块为上层应用提供了一个对设备进行访问的通用抽象接口,而对于下层设备来说则提供了底层设备驱动框架,并通过定义的数据结构对设备信息和底层设备驱动进行管理。从系统整体位置来说I/O设备管理模块相当于底层设备驱动和上层应用之间的一个中间层。 I/O管理模块实现了对设备驱动程序的封装:设备驱动程序的实现与I/O管理模块独立,提高了模块的可移植性。应用程序通过I/O管理模块提供的标准接口访问底层设备,设备驱动程序的升级不会对上层应用产生影响。这种方式使得与设备的硬件操...
2021-05-06 17:37:34
449
转载 FreeType移植到 STM32 单片机以支持矢量字体
目录一、准备工作二、复制文件三、添加C文件到Keil中四、修改接口五、调用六、优化七、效果一、准备工作下载Freetype源码 ----- 下载FreeType以移植到Keil 的STM32工程为例移植前的软件环境:1,实现了内存分配函数2,实现了文件系统3,使用了TR-Theard操作系统4,实现了GUI界面,并支持点阵字体的显示5,实现了Unicode,GBK,UTF8字符编码的相互转换二、复制文件解压源码压缩包得到如下文件复制以下文件到单片机工程下
2021-04-27 10:58:24
3869
5
转载 Keil使用 fromelf 生成bin文件
一、语法格式如下:fromelf [options] input_file[options] 选项如下,可以组合使用,两者之间用空格隔开:二、在Keil中的使用过程1、配置Output,生成可执行文件aa即为可执行文件名,后缀为axf。即编译后会生成一个叫aa.axf的文件,然后再由这个文件生成bin文件。2、配置User,生成bin文件Keil的“User”中可以设置运行命令,这里设置在编译完成后执行fromelf 命令,下面为解释:C:\Keil\ARM...
2021-04-16 18:29:06
1776
转载 __attribute__((section(x))) 使用详解
无论是GNU还是ARM的编译器,都支持__attribute__所指定的编译属性,这里着重讲解一下在KEIL环境下__attribute__中的section的使用方法。section关键字可以将变量定义到指定的输入段中,下面以具体的例子来讲解section的使用方法.#define SECTION(level) __attribute__((used,__section__(".fn_cmd."level)))#define CMD_START_EXPORT(func,func_s) ...
2021-04-09 18:59:08
2650
1
转载 MDK内的KEEP关键字以及$$Base $$Limit
使用mdk编程,假如有一个有用的函数你定义了但是没有显式的调用,mdk在默认方式下,将会把这个函数从整个程序总删除掉,以节省ROM.比如,你在ROM的0x00002000处定位了一个函数,假设为void test(void),然后使用函数指针来调用它:void (*UserProgram)(); //函数指针UserProgram = (void (*)()) (0x00002000);//定位到指定的入口地址0x00002000(*UserProgram)();//调用t...
2021-04-09 18:46:13
1753
转载 SCons 构建工具
SCons 简介SCons 是一套由 Python 语言编写的开源构建系统,类似于 GNU Make。它采用不同于通常 Makefile 文件的方式,而是使用 SConstruct 和 SConscript 文件来替代。这些文件也是 Python 脚本,能够使用标准的 Python 语法来编写。所以在 SConstruct、SConscript 文件中可以调用 Python 标准库进行各类复杂的处理,而不局限于 Makefile 设定的规则。在SCons的网站上可以找到详细的 SCons 用户手..
2021-01-08 15:45:07
8679
1
转载 Quicklz压缩算法
以前对压缩算法一无所知,只是知道哈弗曼编码能做这种事情,但是感觉这样的方法奇慢无比。昨天下午看了下号称世界上最快的压缩算法Quicklz,对压缩的基本思路有了一定的了解。一般的压缩程序的要求读入文件之后以便压缩一边输出,而不是去先分析整个文件中的情况之后才做决定采取哪种算法。Quicklz也不例外也是争取利用文件中重复出现的字节来进行压缩,管理结构如下:在压缩的过程中不断地读入3个字节,然后根据这3个字节得到一个hash值,根据这个hash值就可以找到offset,这个offset就是上次这个hash值
2020-09-30 20:28:01
1071
转载 arm交叉编译器gnueabi、none-eabi、arm-eabi等的区别
命名规则交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi]arch– 体系架构,如ARM,MIPSvendor– 工具链提供商os– 目标操作系统eabi– 嵌入式应用二进制接口(Embedded Application Binary Interface)根据对操作系统的支持与否,ARM GCC可分为支持和不支持操作系统,如arm-none-eabi:这个是没有操作系统的,自然不可能支持那些跟操作系统关系密切的函数,比如f...
2020-06-02 18:15:32
1501
转载 scons用户指南 第八章:自动将命令行选项赋值给Construction变量
1、将选项合并到环境中:MergeFlags函数SCons的construction环境有一个MergeFlags方法,此方法将一个值的字典合并到construction环境中。MergeFlags将字典中的每个值看做一个选项列表。如果一个选项已经在construction环境变量中存在了,MergeFlags将不会重复设置这个选项。当合并选项到任何一个名字在PATH中的变量的时候,MergeFlags保持选项在最左端出现,应为目录路径列表中,第一个出现占主要地位。当合并选项到任何其他变量名的时候,
2020-06-02 18:01:58
820
转载 scons用户指南 第七章:环境
一个环境就是能够影响一个程序如何执行的值的集合。SCons里面有三种不同类型的环境:External Environment(外部环境):外部环境指的是在用户运行SCons的时候,用户环境中的变量的集合。这些变量在SConscript文件中通过Python的os.environ字典可以获得。Construction Environment(构造环境):一个构造环境是在一个SConscript文件中创建的一个唯一的对象,这个对象包含了一些值可以影响SCons编译一个目标的时候做什么动作,以及决
2020-06-02 18:01:21
3289
转载 scons用户指南 第六章:依赖性
到目录为止,我们已经看到了SCons是如何一次性编译的。但是SCons这样的编译工具的一个主要的功能就是当源文件改变的时候,只需要重新编译那些修改的文件,而不会浪费时间去重新编译那些不需要重新编译的东西。如下所示:% scons -Qcc -o hello.o -c hello.ccc -o hello hello.o% scons -Qscons: '.' is up to date.第二次执行的时候,SCons根据当前的hello.c源文件判断出hello程序是最新的,避免了重新编译。.
2020-06-02 18:00:45
910
转载 scons用户指南 第五章:节点对象
1、编译方法返回目标节点列表所有编译方法会返回一个节点对象列表,这些节点对象标识了那些将要被编译的目标文件。这些返回出来的节点可以作为参数传递给其他的编译方法。例如,假设我们想编译两个目标文件,这两个目标有不同的编译选项,并且最终组成一个完整的程序。这意味着对每一个目标文件调用Object编译方法,如下所示:Object('hello.c', CCFLAGS='-DHELLO')Object('goodbye.c', CCFLAGS='-DGOODBYE')Program(['hello.o',.
2020-06-02 18:00:03
334
转载 scons用户指南 第四章:编译和链接库文件
1、编译库文件你可以使用Library方法来编译库文件:Library('foo', ['f1.c', 'f2.c', 'f3.c'])SCons会根据你的系统使用合适的库前缀和后缀。所以在POSIX系统里,上面的例子会如下编译:% scons -Qcc -o f1.o -c f1.ccc -o f2.o -c f2.ccc -o f3.o -c f3.car rc libfoo.a f1.o f2.o f3.oranlib libfoo.a如果你不显示指定目标库的名字,SCons会使.
2020-06-02 17:59:32
1810
转载 scons用户指南 第三章:编译相关的一些事情
1、指定目标文件的名字当你调用Program编译方法的的时候,它编译出来的程序名字是和源文件名是一样的。下面的从hello.c源文件编译一个可执行程序的调用将会在POSIX系统里编译出一个名为hello的可执行程序,在windows系统里会编译出一个名为hello.exe的可执行程序。Program('hello.c')如果你想编译出来的程序的名字与源文件名字不一样,你只需要在源文件名的左边声明一个目标文件的名字就可以了:Program('new_hello','hello.c')现在在POSI.
2020-06-02 17:59:00
405
转载 scons用户指南 第二章:简单编译
1、编译简单的C/C++程序这是一个用C语言编写的著名的"Hello,World!"程序:int main(){ printf("Hello, World!\n");}用SCons编译它,需要在一个名为SConstruct的文件中输入如下命令:Program('hello.c')这个短小的配置文件给了SCons两条信息:你想编译什么(一个可执行程序),你编译的输入文件(hello.c)。Program是一个编译器方法(builder_method),一个Python调用告诉SC...
2020-06-02 17:58:30
1149
转载 scons用户指南 第一章:编译和安装SCons
1、安装Python因为SCons是用Python编写的,所以你必须在使用SCons之前安装好Python。你在安装Python之前,应该注意查看Python是否在你的系统里已经可用了(在系统的命令行中运行python -V或python --version)。$python -VPython 2.5.1在一个Windows系统里,C:\>python -VPython 2.5.1如果Python没有安装,你会看到一条错误消息比如“command not found”(在U
2020-06-02 17:57:52
3813
1
转载 LCD显示异常分析——撕裂(tear effect)
概述我们一起分析了开机花屏的问题,在这一篇中,我将对LCD撕裂(tear effect)问题进行详细分析,以及给出这类问题的常用解决方法。本文适用范围:对象:LCD驱动调试人员 硬件:带GRAM的LCD (如SPI/MCU/DSI CMD屏) 软件:所有嵌入式操作系统现象首先贴一张动态图,让大家能直观的感受撕裂形成的过程:分析从上面的动态图我们可以看到,在第二帧出现了新旧画面各显示一部分的现象,该现象即为撕裂,英文又叫tear effect。tear effect的根.
2020-06-02 09:19:28
5879
5
Tscancode代码扫描工具
2020-11-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人