区块链DAPP代币模式项目系统开发技术流程方案

简介: 区块链DAPP代币模式项目系统开发技术流程方案

刚从硬件跳槽为嵌软时,没有任何一丝的准备。一入职,领导就交代了一项特难的任务——在stm32上移植linux!

瞬间我就懵了,没办法硬着头皮上吧,先搜集资料,我之前跑的是ok6410的板子上运行的linux,现在是在stm32上移植,以前stm32倒是玩过,研究生期间就捣鼓过它,但现在还没从抓烙铁的硬件当中缓过神来,就转到嵌入式软件的开发,更头疼的是stm32没有MMU!没有MMU!找了一下,好吧,有个uClinux!

于是开始学习各种相关的知识,了解到linux的启动一般是u-boot——》liunx内核——》根文件系统,那么首先要做个基于stm32的u-boot,先初始化时钟、外设、中断什么的,看了韦东山老师的视频感觉很好,理解了不少,从一无所知到有点明白了。

移植u-boot到stm32f407

其实说白了u-boot就是一裸板程序,就是跟跑跑马灯、串口通信一个性质的,而裸板程序从正点原子的stm32开发板学习了不少,加上自己研究生阶段有点积累,首先我是参照http://www.cnblogs.com/fozu/p/3618076.html写这位博文的大神写的程序,这篇文章写得很好,后面还分析到内核了,反复看受益匪浅,这个程序不是u-boot程序但是实现的作用一样,初始化时钟,外设。。。最后传递内核参数,跳转内核。。。,一开始用keil编译这个程序,结果一堆错误,人家用的板子和你用的板子不一样,硬件的led灯、串口都可能连接不一样啊,比如人家用的是串口1,你用的是串口2,还有缺少一些头文件等等都会引发错误,所以根据自己的实际来修改,费了一阵功夫终于把错误全干掉,顺利编译成功。

这时用的板子是stm32f103,ST对这个板子早在08年就发布了支持它的u-boot、Uclinux内核(领导额外买的,说是要我对照着对应修改支持stm32f407的uClinux内核),但是只有Uclinux内核有源码,u-boot就给了个hex文件尴尬,其实cortx m3与cortx m4之前架构已经大不一样了,这样修改的话对于我来说无疑是很难的,我一听头都大了,又是单干,烦,没办法照做呗!那就先弄stm32f103的,把之前那个编译没有错误的引导程序拷入,在stm32的0x08003000的位置拷入官方提供的uClinux内核,一启动,接上串口,打开串口助手,一看啥都没有。。。

到底错在哪啦?仔细想想,先是要看看最后跳转内核那步到底有没有成功,那就先验证这一步,参照原子的IAR跳转历程,编了个跑马灯跳转程序,就是引导程序没变,拷在地址0x08000000,而跑马灯程序拷在0x08003000上,如果led灯亮灭就说明跳转无误,于是一启动,灯不亮。抓狂抓狂怎么情况啊,后仔细排查发现是跳转函数,引导程序参照的是u-boot源码来编写的,里面的函数用函数指针赋个地址(0x08003000),最后跳转过去。折腾了两天最后对着原子的程序修改,灯居然可以亮灭了,我现在想想也不知道是什么问题,不过至少现在可以实现跳转了。

再把内核拷到0x08003000,一启动,串口助手还是没有任何输出,这下就真的烦了,郁闷死了,stm32f103还搞不定还想搞stm32f407。。。之后开始各种找原因,各种修改,领导各种催,在stm32f103和stm32f407两个板子之间这搞搞,那搞搞,休息时间就看看韦老师的视频,找资料看看有什么灵感,但是还是没什么进展。

后来在网上搜到一个哥们居然在stm32f407上移植u-boot成功了,而且还有启动图晒出来,这下我就想,人家可以我为什么就不能?于是继续找,终于在网上找到了这个u-boot的源码,根据自己的stm32f407的板子修改串口,时钟等,安装好对应的交叉编译链,注意应该是arm-non-eabi不带linux的,因为是裸板程序不关linux啥事,然后一跑,终于在串口助手看到久违的u-boot启动图,狂喜!想想那段日子确实是在压力之下成长的,感觉技术上有了很大的提升了。

领导过来一看见有u-boot(有点东西交差了。。。)就说要把外部的SRAM驱动加上,以便于跑linux内核,这个sram只有512K,这么小能跑得了linux内核吗?这是后话,先把sram驱动加到u-boot上再说。

先参照原子的sram程序修改运行试试看看,结果可以运行但是写入再读出,有几个地址的数据总有错误,于是一直苦思冥想,想到了一个可能,驱动外部SRAM用到的是stm32的FSMC配置,它有btcr寄存器设置,分为bcr和btr设置,原子的开发板用的是1M16位的,而我的是512k8位,在btr寄存器设置那里应该是设成8位而不是16位,于是把相关设置位置0,这下数据正常了。

相关文章
|
存储 安全 前端开发
区块链 DAPP 互助逻辑模式系统开发技术方案[源码示例]
Dapp(Decentralized Application)是指不受任何中心化组织或机构控制的、使用特定区块链技术为基础的去中心化应用程序。Dapp 是一种特殊类型的应用,它可以在任何基于区块链技术的系统,例如 Ethereum、EOS 或其他的智能合约系统上运行。
|
区块链 C# 存储
链动未来:WPF与区块链的创新融合——从智能合约到去中心化应用,全方位解析开发安全可靠DApp的最佳路径
【8月更文挑战第31天】本文以问答形式详细介绍了区块链技术的特点及其在Windows Presentation Foundation(WPF)中的集成方法。通过示例代码展示了如何选择合适的区块链平台、创建智能合约,并在WPF应用中与其交互,实现安全可靠的消息存储和检索功能。希望这能为WPF开发者提供区块链技术应用的参考与灵感。
238 0
|
安全 编译器 区块链
区块链代币 DAPP 通缩燃烧模式系统开发技术方案
合约代码部署流程可能因区块链技术的不同实现而略有不同,但基本步骤如下:
|
算法 区块链
区块链项目的商业模式有哪些成功案例
**评估区块链项目潜力的关键因素包括:技术创新与应用场景(如共识算法、交易速度)、团队背景与发展战略(团队经验、市场定位)、社区活跃度与合作伙伴(用户参与、合作网络)、透明度与合规性(信息透明、法规遵循)、技术可行性(技术成熟度、安全性)及商业模式与市场可行性(市场规模、用户需求)。这些综合考量帮助判断项目的成功潜力和市场前景。**
|
8月前
|
存储 供应链 API
区块链技术在电商API中的应用:保障数据安全与交易透明
区块链技术在电商API中的应用,为数据安全与交易透明提供了新方案。通过数据加密、分布式存储、智能合约管理、商品溯源及实时结算等功能,有效提升电商数据安全性与交易可信度。然而,技术成熟度、隐私保护和监管合规等挑战仍需克服。未来,随着物联网、大数据等技术融合及政策支持,区块链将在电商领域发挥更大潜力,推动行业智能化发展。
|
4月前
|
供应链 安全 算法
区块链技术探索与应用:从密码学奇迹到产业变革引擎
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。以代码为舟,算法为帆,在区块链的浩瀚星河中探索去中心化的未来。从智能合约到DeFi,用极客精神谱写信任新篇章。
区块链技术探索与应用:从密码学奇迹到产业变革引擎
|
9月前
|
传感器 人工智能 算法
聚焦“以技术集成支撑单亩价值创造”与“增加值分配机制区块链存证确权”两大核心本质
“振兴链-技术集成科技小院”以技术集成与区块链为核心,推动农业现代化。通过多维度技术整合(如精准农业、物联网等),突破资源约束,最大化单亩产值;同时利用区块链确权存证,建立透明分配机制,解决传统农业中收益不均问题。技术赋能生产,制度重塑分配,实现效率与公平的平衡,助力乡村振兴与产业升级。典型场景显示,该模式可显著提升单亩价值并确保增值公平分配。
|
5月前
|
人工智能 安全 数据可视化
数字孪生 + 区块链:MyEMS 引领能源管理技术融合新趋势
MyEMS融合数字孪生与区块链技术,打造可信、透明、高效的能源管理新范式。通过实时镜像、智能预测与数据上链,实现能耗可追溯、碳排可验证、交易可信任,推动能源管理迈向智能化与价值化新时代。(238字)
244 1
|
存储 安全 算法
深入探讨区块链技术的安全性
深入探讨区块链技术的安全性
760 103
|
8月前
|
存储 安全 API
区块链技术:为电商API接口应用前景筑牢安全与效率之基
区块链技术凭借其去中心化、透明性、安全性和不可篡改性,为电商API接口带来了全新机遇。它可提升数据安全性、增强交易透明度、优化供应链管理,并降低运营成本。应用场景包括数据加密传输、分布式存储、智能合约权限管理、商品溯源防伪及实时结算。尽管面临性能、隐私保护与监管等挑战,随着技术进步与融合创新,区块链将在电商API中实现更智能、高效的应用,推动行业变革升级。