当前位置:网站首页>单片机现在可谓是铺天盖地,种类繁多,让开发者们应接不暇
单片机现在可谓是铺天盖地,种类繁多,让开发者们应接不暇
2022-07-03 09:09:00 【枪哥玩转嵌入式】
单片机现在可谓是铺天盖地,种类繁多,让开发者们应接不暇,发展也是相当的迅速,从上世纪80年代,由当时的4位8位发展到现在的各种高速单片机……
各个厂商们也在速度、内存、功能上此起彼伏,参差不齐~~同时涌现出一大批拥有代表性单片机的厂商:Atmel、TI、ST、MicroChip、ARM…国内的宏晶STC单片机也是可圈可点…
下面为大家带来51、MSP430、TMS、STM32、PIC、AVR、STC单片机之间的优缺点比较及功能体现……
单片机最大的短板是计算能力有限,如果加密要求不高,可利用随机发生器设计一个简单的加密逻辑,在单片机中用软件完成运算后发送,比如可用随机数与发送内容进行异或运算,但需要把随机数打包发送出来,接收方再按单片机的方式去反向运算。报文格式自己设计一下,加一些简单的冗余验证。
文章相对比较长,字数比较多,大家可以先打开头像关注我,之后慢慢看,///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像左下角黑色字体加我也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///
当然,上面这种方式肯定有很多缺陷,大神门就不用拍砖了,既然题主说“简单加密”,那就权当一个参考思路吧。
如果想做的比较规范一下,可以参考一下国密算法中的SM4(SM1、2、3就不建议了),不过前面提了单片机的算力有限,不宜实现太复杂的运算。
STC单片机和STM32单片机都是采用独立的数据和地址总线访问数据和程序存储器的哈弗计算机结构。STC单片机是基于MCS-51内核的8位单片机,STM32是基于Cortex-M3内核的32位单片机。
两者都具备单芯片内集成计算机的核心运算处理器和不同功能的外设。STC单片机和STM32单片机在国内应用都非常广泛,资料也非常多,入门需要的信息、资源、工具和软件等等都比较丰富。这两种芯片的这些特点和现实,决定了当前一个非常重要的现实:硬件研发工程师有必要全部掌握采用STC单片机和STM32单片机开发产品的技能。
普通单片机与STM32单片机中堆栈的区别
普通单片机启动时,不需要用bootloader将代码从ROM搬移到RAM。但是STM32单片机需要。
这里我们可以先看看单片机程序执行的过程,单片机执行分三个步骤:
取指令
分析指令
执行指令
根据PC的值从程序存储器读出指令,送到指令寄存器。然后分析执行执行。这样单片机就从内部程序存储器去代码指令,从RAM存取相关数据。
RAM取数的速度是远高于ROM的,但是普通单片机因为本身运行频率不高,所以从ROM取指令慢并不影响。
而STM32的CPU运行的频率高,远大于从ROM读写的速度。所以需要用bootloader将代码从ROM搬移到RAM。
使用栈就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自由度小。使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由度大。
其实堆栈就是单片机中的一些存储单元,这些存储单元被指定保存一些特殊信息,比如地址(保护断点)和数据(保护现场)。
如果非要给他加几个特点的话那就是:
这些存储单元中的内容都是程序执行过程中被中断打断时,事故现场的一些相关参数。如果不保存这些参数,单片机执行完中断函数后就无法回到主程序继续执行了。
这些存储单元的地址被记在了一个叫做堆栈指针(SP)的地方。
结合STM32的开发讲述堆栈
从上面的描述可以看得出来,在代码中是如何占用堆和栈的。可能很多人还是无法理解,这里再结合STM32的开发过程中与堆栈相关的内容来进行讲述。
对单片机感兴趣的朋友可以找我,我录制了一些关于单片机的入门教程,有需要的童鞋找我拿就行,免费的,私信我“林老师”就可以拿~点击打开我的头像就能领取
边栏推荐
- Leetcode daily question (516. long palindromic subsequence)
- IDEA远程断点调试jar包项目
- DSP data calculation error
- MySQL的简单使用(增删改查)
- Fundamentals of Electronic Technology (III)__ Chapter 6 combinational logic circuit
- Flink learning notes (IX) status programming
- Oracle数据库 SQL语句执行计划、语句跟踪与优化实例
- Raspberry pie installation SciPy
- uniapp 实现微信小程序全局分享及自定义分享按钮样式
- Project scope management__ Scope management plan and scope specification
猜你喜欢
[CSDN]C1訓練題解析_第三部分_JS基礎
PRACH --- originator
Schematic diagram and connection method of six pin self-locking switch
Oracle数据库 SQL语句执行计划、语句跟踪与优化实例
[male nanny style] teach you to open the first wechat applet
Leetcode daily question (931. minimum falling path sum)
Flink learning notes (VIII) multi stream conversion
Nr-prach:prach format and time-frequency domain
C language enumeration type
Fundamentals of Electronic Technology (III)__ Logic gate symbols in Chapter 5
随机推荐
PolyWorks script development learning notes (I) - script development environment
Intelligent home design and development
【順利畢業】[1]-遊覽 [學生管理信息系統]
NR PUCCH format0 sequence generation and detection mechanism
Project cost management__ Cost management technology__ Article 8 performance review
UCI and data multiplexing are transmitted on Pusch (Part 4) --small block lengths
[CSDN]C1训练题解析_第二部分_Web基础
Raspberry pie installation SciPy
MySQL data manipulation language DML common commands
Shell logic case
Successful graduation [3]- blog system update...
Hal library sets STM32 clock
Development of electrical fire system
Uncle Wang's blog directory [constantly updating]
PIP references domestic sources
Idea remote breakpoint debugging jar package project
Matlab reads hexadecimal numbers and converts them into signed short
MYSQL数据库底层基础专栏
How does the memory database give full play to the advantages of memory?
Leetcode daily question (2232. minimize result by addressing parents to expression)