![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式开发
文章平均质量分 53
I_O_fly
身为一个喜欢算法的小菜鸡,喜欢自己自学
展开
-
关于ld文件AT指令
比如,下面的连接脚本创建了三个输出节:一个叫做‘.text’从地址‘0x1000’处开始,一个叫‘.mdata’,尽管它的VMA是’0x2000’,它会被载入到’.text’节的后面,最后一个叫做‘.bss’是用来放置未初始化的数据的,其地址从’0x3000’处开始。符号’_data’被定义为值’0x2000’, 它表示定位计数器的值是VMA的值,而不是LMA。这个连接脚本产生的程序使用的运行时初始化代码会包含象下面所示的一些东西,以把初始化后的数据从ROM映像中拷贝到它的运行时地址中去。原创 2022-12-30 10:49:07 · 1669 阅读 · 0 评论 -
FPGA到底是什么?
自FPGA诞生以来,FPGA(现场可编程门阵列)就引起了人们的关注。在1980年代中期,Ross Freeman和他的同事从Zilog购买了该技术,并创建了Xilinx,目标是ASIC仿真和教育市场。同时Altera以类似技术为核心成立。直至今日,AMD 350亿美元(约2230亿人民币)收购赛灵思(Xilinx)则马上就要大功告成。原计划2021年底获得所有批准,但目前尚未完成,预计2022年第一季度完成交易。而早在2015年因特尔便宣布以167亿美元收购Altera。转载 2022-11-15 14:53:44 · 1356 阅读 · 0 评论 -
在嵌入式中IP的意思
在嵌入式领域中,经常听别人说IP,IP的。通过学习了解了这个概念,device上的功能模块叫做IP。原创 2022-11-08 10:32:33 · 277 阅读 · 0 评论 -
RISC-V快速入门
/ a1可以在内存中,也可以在寄存器中,但是后面有取址操作,所以a1只能在内存中 int * a1p = & a1;// a1p 存放了a1的地址,也就是a1p的值是a1的地址,假设a1p在t0寄存器中 int a2 = * a1p;// lw t1, 0(t0) ,其中t1寄存器是a2 * a1p = 8;inta4=a3p;*a3p=8;1234。转载 2022-11-02 16:32:52 · 1458 阅读 · 0 评论 -
RISC-V汇编快速入门
pc的作用非常重要,cpu执行当前指令,pc指向下一条指令,当cpu执行完当前指令以后,cpu就会去读pc,从而找到下一条要执行的指令的位置,然后就继续执行下一条指令,而pc的值也会相应的更新。没错,跳转的本质其实只是简单的改变pc的值,当执行到 jal ra, 100这条语句时,pc的值是这条指令的下一条指令的地址,当cpu执行的时候,cpu就会把pc 的值放到ra 中,再把pc的值更改位pc+200,执行完以后,cpu继续读取pc的值,就会到pc+200的地方去执行指令,从而实现跳转的功能。转载 2022-09-30 16:12:56 · 3459 阅读 · 4 评论 -
RISCV-官方教程
The RISC-V Assembly Programmer’s Manual is© 2017 Palmer Dabbelt palmer@dabbelt.com© 2017 Michael Clark michaeljclark@mac.com© 2017 Alex Bradbury asb@lowrisc.orgIt is licensed under the Creative Commons Attribution 4.0 International License(CC-BY 4.0). T转载 2022-09-28 16:59:53 · 3158 阅读 · 0 评论 -
RISCV汇编指令
label:opcodeoperandscomment标签操作码操作数注释标签:表示当前指令的位置标记操作码:操作码主要有以下几种形式RISC-V标准指令伪指令用户自定义宏操作数:操作码所需的操作,与操作码之间以空格分开符号、常量、或是符号与常量组成的表达式。原创 2022-09-28 14:38:35 · 2729 阅读 · 0 评论 -
简述代码中关于.data、.bss、.rodata、.text段的意义
注意:BSS段不包含任何数据,只是简单的维护开始和结束的地址,以便内存区能在运行时被有效的清零。bss段(Block(b) Started(s) by Symbol(s)):即用来存储一些未被初始化的全局变量和静态变量的内存区域,一般在初始化时bss段部分将会清零,属于静态内存分配,即程序一开始就将其清零了。data段:又称为数据段,通常是指用来存放程序中已被初始化的全局变量,常量,静态变量的一块内存区域。//全局的被初始化的变量,处于data段。//全局的被初始化的变量,处于data段。转载 2022-09-21 16:55:31 · 486 阅读 · 0 评论 -
GCC常用编译选项
【代码】GCC常用编译选项。原创 2022-08-24 16:37:52 · 646 阅读 · 0 评论 -
Labview优化技巧
最近公司在做芯片加密项目,正好我刚入职的时候做了一个备用,拿来顶,然后改完交给对接的公司,在一开始看的时候,虽然我注释写的挺多,但是关于SM2国标算法的算法流程忘得差不多了,然后浪费了很多时间,花了2-3天才搞定项目里的Bug,好多都是忘记流程产生的,现在来写个文章记录一下。...原创 2021-07-06 17:13:53 · 4154 阅读 · 0 评论 -
关于SM2国密算法开发流程
SM2国密算法开发流程最近公司在做芯片加密项目,正好我刚入职的时候做了一个备用,拿来顶,然后改完交给对接的公司,在一开始看的时候,虽然我注释写的挺多,但是关于SM2国标算法的算法流程忘得差不多了,然后浪费了很多时间,花了2-3天才搞定项目里的Bug,好多都是忘记流程产生的,现在来写个文章记录一下。首先SM2算法介绍:SM2椭圆曲线公钥密码算法:我国自主知识产权的商用密码算法,是ECC(Elliptic Curve Cryptosystem)算法的一种,基于椭圆曲线离散对数问题,计算复杂度是指数级,求解原创 2021-04-02 14:50:56 · 4025 阅读 · 0 评论 -
S32K116看门狗的使用
看门狗是嵌入式开发中必备的重要模块,它可以当你程序在运行过程中因为一些不可避免的因素造成停顿,死锁的时候自动复位。看门狗分硬件看门狗和软件看门狗。硬件看门狗是利用一个定时器电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零(俗称“喂狗”),因此程序正常工作时,定时器总不能溢出,也就不能产生复位信号。如果程序出现故障,不在定时周期内复位看门狗,就使得看门狗定时器溢出产生复位信号并重启系统。软件看门狗原理上一样,只是将硬件电路上的定时器用处理器的内部定时器代替,这样可以简化硬件电路设计,但原创 2021-03-12 09:56:29 · 1120 阅读 · 0 评论 -
基于S32K116 LPIT模块的使用
LPIT是s32k里面的一种低功耗周期性定时器,使用的方式呢配置也很简单,实现配置,首先先添加lpit模块,添加完之后打开配置需要注意的是这几个选项第一个是选择微妙级的计数单位,第二个是周期,第三个是触发方式然后配置完成后生成代码: LPIT_DRV_Init(INST_LPIT1, &lpit1_InitConfig); LPIT_DRV_InitChannel(INST_LPIT1, LPIT_CHANNEL, &lpit1_ChnCo...原创 2021-03-12 09:31:05 · 1218 阅读 · 0 评论 -
stm32MDK错误码(不定时更新)
#513-D…\HARDWARE\1U\src\Uart.c(1134): warning: #513-D: a value of type “char *” cannot be assigned to an entity of type "uchar"p = strrchr(Command,’’);修改:#513…\HARDWARE\src\uart.c(396): error: #513: a value of type “u8 *” cannot be assigned to an ent...原创 2021-01-04 16:18:39 · 10827 阅读 · 1 评论 -
【STM32】系统时钟RCC详解(超详细,超全面)
1什么是时钟时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令。时钟系统就是CPU的脉搏,决定cpu速率,像人的心跳一样 只有有了心跳,人才能做其他的事情,而单片机有了时钟,才能够运行执行指令,才能够做其他的处理 (点灯,串口,ADC),时钟的重要性不言而喻。为什么 STM32 要有多个时钟源呢?STM32本身十分复杂,外设非常多 但我们实际使用的时候只会用到有限的几个外设,使用任何外设都需要时钟才能启动,但并不是所有的外设都需要系统时钟那么高的频率,为了兼容不同速度的设..转载 2021-01-04 09:28:19 · 3082 阅读 · 0 评论 -
mobdus poll 和modbus slave使用教程详解
一、介绍Modbus Poll:Modbus主机仿真器,用于测试和调试Modbus从设备。该软件支持ModbusRTU、ASCII、TCP/IP。用来帮助开发人员测试Modbus从设备,或者其它Modbus协议的测试和仿真。它支持多文档接口,即,可以同时监视多个从设备/数据域。每个窗口简单地设定从设备ID,功能,地址,大小和轮询间隔。你可以从任意一个窗口读写寄存器和线圈。如果你想改变一个单独的寄存器,简单地双击这个值即可。或者你可以改变多个寄存器/线圈值。提供数据的多种格式方式,比如浮点、双精度、长整.转载 2020-12-03 11:04:39 · 2107 阅读 · 0 评论 -
用wireshark抓取modebus tcp包抓不到解决方案
在使用ModBus Slave模拟从站的时候,发现Wireshark怎么都抓取不到包,原因是从站主站都在一台pc上,包不经过网卡,所有抓取不到。用管理员打开cmd,输入route add本机ip mask 255.255.255.255网关ip...原创 2020-12-02 17:44:34 · 2202 阅读 · 0 评论 -
【STM32】系统时钟RCC详解(超详细,超全面)
【STM32】系统时钟RCC详解(超详细,超全面)1什么是时钟时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令。时钟系统就是CPU的脉搏,决定cpu速率,像人的心跳一样 只有有了心跳,人才能做其他的事情,而单片机有了时钟,才能够运行执行指令,才能够做其他的处理 (点灯,串口,ADC),时钟的重要性不言而喻。为什么 STM32 要有多个时钟源呢?STM32本身十分复杂,外设非常多 但我们实际使用的时候只会用到有限的几个外设,使用任何外设都需要时钟才能启动,但并不...转载 2020-11-05 11:21:51 · 6805 阅读 · 3 评论 -
STM32中断详解
stm32中断的顺序:1)初始化 IO 口。2)开启 AFIO 时钟3)EXTI配置。4)NVIC配置。5)编写中断服务函数。1 NVIC中断优先级管理CM3 内核支持 256 个中断,其中包含了 16 个内核中断和 240 个外部中断,并且具有 256级的可编程中断设置。但 STM32 并没有使用 CM3 内核的全部东西,而是只用了它的一部分。TM32 有 84 个中断,包括 16 个内核中断和 68 个可屏蔽中断,具有 16 级可编程的中断优先级。而我们常用的就是这 68 个可屏蔽中断转载 2020-09-15 10:14:28 · 3021 阅读 · 1 评论 -
STM32寄存器的简介、地址查找,与直接操作寄存器
什么是寄存器提到单片机,就不得不提到寄存器。根据百度百科介绍,寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。 简单来说,寄存器就是存放东西的东西。从名字来看,跟火车站寄存行李的地方好像是有关系的。只不过火车站行李寄存处,存放的行李;寄存器可能存放的是指令、数据或地址。 存放数据的寄存器是最好理解的,如果你需要读取一个数据,直接到这个寄存器所在的地方来问问他,数据是多少就行了。问寄存器这个动作,叫做访问寄存器。不同的数据会存放在不同的寄存器,例转载 2020-09-14 18:14:35 · 14201 阅读 · 4 评论 -
数字签名
数字签名数字签名是通过一个单项函数(hash函数)对要传送的信息进行处理,得到一个用于认证信息来源并核实信息在传递过程中是否发生变化的一个字符串。数字签名提供了对信息来源的确定并能检测信息是否被篡改。今天看了一篇关于数字签名具体过程介绍,感觉特别好就保存一下。我们都知道数字签名是非对称加密技术的一个具体应用,它采用私钥加密,采用公钥验证的方式。这里依然记住Bob和他的小伙伴来帮助我们理解。1. Bob有两把钥匙,一把私钥、一把公钥。2. B...转载 2020-08-31 11:06:17 · 272 阅读 · 0 评论 -
详解:RS232和RS485、TTL有什么区别
在物联网这个行业,只要你是一个嵌入式工程师,一般都会接触到RS232、RS485、TTL这些概念。你是不是遇到这个概念就百度搜索一下呢,下面为大家整理了RS232和RS485、TTL接口的区别。 RS232接口的电气特征 在RS-232-C中任何一条信号线的电压均为负逻辑关系。即:逻辑“1”为-3到-15V;逻辑“0”为+3到+15V。 RS-232-C接口连接器一般使用型号为DB-9插头座,通常插头在DCE端,插座在DTE端。PC机的RS-232口为9芯针插座。一些设备与PC机连接的RS-转载 2020-08-27 17:46:52 · 1475 阅读 · 0 评论