泰山众筹系统!区块链泰山众筹DAPP模式系统开发流程逻辑分析详情

简介: 泰山众筹系统!区块链泰山众筹DAPP模式系统开发流程逻辑分析详情

技术逻辑代码分析:

/* start address for the initialization values of the .data section.
defined in linker script */
.word _sidata
/ start address for the .data section. defined in linker script /
.word _sdata
/ end address for the .data section. defined in linker script /
.word _edata
/ start address for the .bss section. defined in linker script /
.word _sbss
/ end address for the .bss section. defined in linker script /
.word _ebss
/ stack used for SystemInit_ExtMemCtl; always internal RAM used /
复制
.word表示了在当前位置放一个word型的值,可以理解为一个变量或者数据定义,这个变量同样对对.ld(连接文件)可见。
可以看到定义的变量包括_sidata;_sdata;_edata;_sbss;_ebss,分别用于表示带初始化值的.data段起始地址,.data段的起始地址,结束地址,.bss段的起始地址,结束地址。注释中SystemInit_ExtMemCtl表示配置外部RAM
启动跳转
继续往下看:

/**

  • @brief This is the code that gets called when the processor first
  • starts execution following a reset event. Only the absolutely
  • necessary set is performed, after which the application
  • supplied main() routine is called.
  • @param None
  • @retval : None

*/

.section  .text.Reset_Handler

.weak Reset_Handler
.type Reset_Handler, %function
Reset_Handler:
ldr sp, =_estack / set stack pointer /

/ Copy the data segment initializers from flash to SRAM /
movs r1, #0
b LoopCopyDataInit

CopyDataInit:
ldr r3, =_sidata
ldr r3, [r3, r1]
str r3, [r0, r1]
adds r1, r1, #4

LoopCopyDataInit:
ldr r0, =_sdata
ldr r3, =_edata
adds r2, r0, r1
cmp r2, r3
bcc CopyDataInit
ldr r2, =_sbss
b LoopFillZerobss
/ Zero fill the bss segment. /
FillZerobss:
movs r3, #0
str r3, [r2], #4

LoopFillZerobss:
ldr r3, = _ebss
cmp r2, r3
bcc FillZerobss

/ Call the clock system intitialization function./
bl SystemInit
/ Call static constructors /

bl __libc_init_array

/ Call the application's entry point./
bl main
bx lr
.size Reset_Handler, .-Reset_Handler
复制
逐一解释:

开头注释表明:这部分代码在芯片第一次启动或复位后,需要执行的一些必要的操作,在此之后启动main()函数执行
.weak Reset_Handler该伪指令在符号名称的逗号分隔列表上设置弱属性。 如果符号不存在,将创建它们。(弱定义,如果有其他强定义则用强定义替代),即当我们定义一个Reset_Handler函数时,这部分将不起作用
.type Reset_Handler, %function(ELF格式下隐含的标识一个段的开始)此伪指令用于设置符号的类型。%function表示符号是函数名
后面就是汇编函数的定义了,一步步看:
Reset_Handler:LDR指令用于从内存中将一个32位的字读取到指令中的目标寄存器中,即将_estack栈底赋值给SP,SP寄存器是指的是堆栈指针寄存器,将R1寄存器赋值为0,B指令跳转至CopyDataInit函数,通过函数名可以看出,这里是对数据进行初始化。
LoopCopyDataInit:将_sdata赋值给R0,将_edata赋值给R3,将R0和R1的相加结果给R2,注意R1这里是0,即flash的0起始位置?比较R2与R3,如果R2>=R3,则bcc指令执行,进入CopyDataInit函数,否则则将R2置为_sbss并跳转至LoopFillZerobss,之后跳转至SystemInit函数和__libc_init_array中,多说一句__libc_init_array指用了C++代码,所以需要__libc_init_array 来初始化一些东西, 在C++中,全局变量和静态变量的构造函数需要在main函数执行前执行,这些构造函数会放在init_array表中,__libc_init_array函数有调用这些函数的代码
跳转main函数,当main函数执行退出后执行BX LR跳转回LR寄存器,这时候就从main函数跳出来了。
.size Reset_Handler, .-Reset_Handler(ELF格式下隐含标识一个段的结束)该指令设置与符号名称关联的大小。字节大小由可使用标签算术的表达式计算得出。 该伪指令通常用于设置功能符号的大小。

相关文章
|
Java 区块链 网络架构
酷阿鲸森林农场:Java 区块链系统中的 P2P 区块同步与节点自动加入机制
本文介绍了基于 Java 的去中心化区块链电商系统设计与实现,重点探讨了 P2P 网络在酷阿鲸森林农场项目中的应用。通过节点自动发现、区块广播同步及链校验功能,系统实现了无需中心服务器的点对点网络架构。文章详细解析了核心代码逻辑,包括 P2P 服务端监听、客户端广播新区块及节点列表自动获取等环节,并提出了消息签名验证、WebSocket 替代 Socket 等优化方向。该系统不仅适用于农业电商,还可扩展至教育、物流等领域,构建可信数据链条。
|
安全 区块链
Massa Layer 1区块链 POS 安全性分析
Massa Labs 回应 Certik 的挑战,通过严格的数学分析证明了其权益证明系统的安全性,抵抗了潜在攻击者试图操纵随机抽签的企图。
254 0
Massa Layer 1区块链 POS 安全性分析
|
存储 供应链 安全
构建未来:智能合约在区块链生态系统中的关键作用
【5月更文挑战第30天】 随着区块链技术的迅猛发展,智能合约已成为推动这一领域创新的核心机制。本文深入探讨了智能合约的技术基础、运作原理及其在各行各业中的应用潜力。我们将分析智能合约如何提高交易效率,减少法律纠纷,并为分布式应用(DApps)提供坚实的基础。文章还将讨论智能合约面临的挑战与未来的发展方向,为读者提供一个全面且深入的视角,以理解这一变革性技术如何塑造数字经济的未来。
|
存储 供应链 安全
基于区块链技术的智能合约安全性分析
【5月更文挑战第31天】本文深入探讨了区块链技术中智能合约的安全性问题,通过分析现有智能合约的安全漏洞和攻击手段,提出了一系列增强智能合约安全性的策略。文章首先介绍了区块链和智能合约的基本概念,随后详细讨论了智能合约面临的安全挑战,包括代码漏洞、重入攻击等问题,并对比分析了不同平台下智能合约的安全性差异。最后,文章提出了一系列提高智能合约安全性的建议,旨在为区块链应用的健康发展提供参考。
|
机器学习/深度学习 自动驾驶 物联网
未来技术的脉动:区块链、物联网和虚拟现实的革新之旅基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第28天】 随着科技的不断进步,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正在重塑我们的世界。本文将深入探讨这些技术的发展趋势,以及它们在各个行业中的创新应用。区块链技术以其不可篡改和去中心化的特性,正在金融、供应链管理和身份验证等领域引领一场变革。物联网通过智能设备和系统的互联互通,实现数据的高效流通,推动智慧城市和智能家居的发展。而虚拟现实技术则通过沉浸式体验,改变教育、医疗和娱乐等行业的服务模式。这些技术的融合与创新,预示着一个更加智能、互联和虚拟的未来。 【5月更文挑战第28天】 随着人工智能技术的飞速发展,深度学习已经成为推动自动驾驶系统革新的核心力量。本文
|
存储 算法 安全
区块链系统开发技术规则分析
区块链核心技术包括:1) 哈希算法,利用单向函数将任意数据转化为固定长度代码,确保安全验证;2) 非对称加密,使用公钥和私钥一对进行加密解密,保证信息安全;3) 共识机制,如PoW、PoS、DPoS等,实现快速交易验证和确认;4) 智能合约,自动执行的可信代码,一旦编写即不可更改,用于自动化交易;5) 分布式存储,将数据分散存储在网络各处,涵盖结构化、非结构化和半结构化数据。
|
存储 安全 区块链
元宇宙与区块链技术的关系可以从多个角度进行阐述。以下是对这两者之间关系的详细分析
**元宇宙:虚拟世界融合现实元素,强调交互与沉浸;区块链:去中心化、安全的分布式账本。两者结合,区块链确保元宇宙中虚拟资产安全、支付高效、身份验证私密、治理透明,支撑其经济体系与用户信任,驱动未来发展。**
近期区块链市场趋势分析
**区块链市场趋势摘要:** - 跨链技术成熟,提升互操作性,助力区块链网络融合。 - DeFi持续繁荣,智能合约与AMM创新活跃,市场竞争驱动市场壮大。 - NFT市场多样化,拓展至游戏、音乐等领域,实用性增强。 - 区块链寻求绿色转型,通过PoS共识与绿色能源减少能耗。 - 技术模块化、可组合性提升,降低成本,增强系统灵活性。 这些趋势展现区块链潜力,带来机遇与挑战,促进行业创新。
|
供应链 区块链
基于区块链的供应链管理追溯系统研究
基于区块链的供应链管理追溯系统研究
|
人工智能 供应链 区块链
移动应用开发的未来:跨平台框架与原生系统的融合区块链技术在供应链管理中的应用探索
【5月更文挑战第27天】随着移动设备的普及,移动应用开发已成为软件工程的一个关键领域。本文探讨了移动应用开发的当前趋势,特别是跨平台开发框架的兴起以及它们如何与原生移动操作系统交互。文章分析了跨平台工具如React Native、Flutter和Xamarin的优缺点,并讨论了它们在性能、用户体验和开发效率方面的权衡。此外,文章还预测了未来移动应用开发可能面临的挑战和机遇,包括人工智能、物联网和5G技术的融合。 【5月更文挑战第27天】 随着数字化转型的深入,区块链技术已从金融领域扩展到多个行业,其中供应链管理成为其创新应用的热点。本文将探讨区块链如何提升供应链透明度、优化流程并增强安全性。