CN107526621A - 一种外置存储器主控代码编译方法和装置 - Google Patents
一种外置存储器主控代码编译方法和装置 Download PDFInfo
- Publication number
- CN107526621A CN107526621A CN201710665450.6A CN201710665450A CN107526621A CN 107526621 A CN107526621 A CN 107526621A CN 201710665450 A CN201710665450 A CN 201710665450A CN 107526621 A CN107526621 A CN 107526621A
- Authority
- CN
- China
- Prior art keywords
- code
- address
- file
- outside portion
- master control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种外置存储器主控代码编译方法,包括解析内、外部汇编脚本以获取代码地址信息,代码地址信息包括汇编变量地址和内、外部代码跳转地址;基于主控型号加载对应的汇编指令计算匹配文件,汇编指令计算匹配文件用于提供地址计算公式;基于代码地址信息和汇编指令计算匹配文件计算内、外部代码地址;结合内、外部代码地址和内、外部汇编脚本文件生成代码文件。本发明提供解析外置存储器内置的汇编脚本和存储器外部的汇编脚本,获取代码地址的汇编变量地址和内、外部代码跳转地址,通过主控对应的计算匹配文件的计算公式获取内、外部代码地址,结合汇编脚本文件生成对应的代码文件,可以快速的实现代码文件的生成,提高流片生产的效率。
Description
技术领域
本发明涉及一种外置存储器主控代码编译方法和装置,属于存储器技术领域。
背景技术
以NandFlash作为存储介质的U盘,EMMC,SSD等外置存储器,其最主要的结构包括主控芯片和存储模块,而主控芯片的作用是连接外部端口和存储模块,因此主控需要生成用于连接外部端口的驱动程序/外部代码,同时也要能让外部的指令能够和存储模块进行关联。
编译器在解析内外部汇编指令代码地址时要花费大量的时间,影响了主控的代码的生成的速度,不利于在工业流片制造效率。
发明内容
为了解决上述问题,本发明通过提供一种外置存储器主控代码编译方法和装置。
本发明采用的技术方案一方面为一种外置存储器主控代码编译方法,包括解析内、外部汇编脚本以获取代码地址信息并存入缓存文件,所述代码地址信息包括汇编变量地址和内、外部代码跳转地址;基于主控型号加载对应的汇编指令计算匹配文件,所述汇编指令计算匹配文件用于提供地址计算公式;基于代码地址信息和汇编指令计算匹配文件计算内、外部代码地址;结合内、外部代码地址和内、外部汇编脚本文件生成代码文件。
优选地,还包括判断是否存在内部地址文件,所述内部地址文件用于缓存外置存储器的内部汇编代码的地址信息;如果存在内部地址文件则只解析外部汇编脚本,不存在则解析内、外部汇编脚本以获取代码地址信息并存入缓存文件。
优选地,还包括根据代码地址区分地址类型并建立内部地址文件。
优选地,还包括基于地址规则验证内、外部代码地址的合法性。
优选地,所述外置存储器包括u盘、EMMC、SSD。
本发明采用的技术方案另一方面为一种外置存储器主控代码编译装置,包括:脚本解析器,用于解析内、外部汇编脚本以获取代码地址信息并存入缓存文件,所述代码地址信息包括汇编变量地址和内、外部代码跳转地址;处理器,用于基于主控型号加载对应的汇编指令计算匹配文件,所述汇编指令计算匹配文件用于提供地址计算公式;还用于基于代码地址信息和汇编指令计算匹配文件计算内、外部代码地址;编译器,用于结合内、外部代码地址和内、外部汇编脚本文件生成代码文件。
优选地,脚本解析器还用于判断是否存在内部地址文件,所述内部地址文件用于缓存外置存储器的内部汇编代码的地址信息;如果存在内部地址文件则只解析外部汇编脚本,不存在则解析内、外部汇编脚本以获取代码地址信息并存入缓存文件。
优选地,处理器还用于根据代码地址区分地址类型并建立内部地址文件。
优选地,处理器还用于基于地址规则验证内、外部代码地址的合法性。
优选地,所述外置存储器包括u盘、EMMC、SSD。
本发明的有益效果为解析外置存储器内置的汇编脚本和存储器外部的汇编脚本,获取代码地址的汇编变量地址和内、外部代码跳转地址,通过主控对应的计算匹配文件的计算公式获取内、外部代码地址,结合汇编脚本文件生成对应的代码文件,可以快速的实现代码文件的生成,提高流片生产的效率。
附图说明
图1所示为基于本发明实施例的一种外置存储器主控代码编译方法的示意图。
具体实施方式
以下结合实施例对本发明进行说明。
基于发明的实施例,如图1所示一种外置存储器主控代码编译方法,包括解析内、外部汇编脚本以获取代码地址信息并存入缓存文件,所述代码地址信息包括汇编变量地址和内、外部代码跳转地址;基于主控型号加载对应的汇编指令计算匹配文件,所述汇编指令计算匹配文件用于提供地址计算公式;基于代码地址信息和汇编指令计算匹配文件计算内、外部代码地址;结合内、外部代码地址和内、外部汇编脚本文件生成代码文件。
以NandFlash作为存储介质的U盘,EMMC,SSD等外置存储器,其结构包括主控芯片、存储模块和其他的辅助模块,这些部件的运行是基于内设的汇编脚本,同时作为外部的接口(例如电脑主机等)其与存储器进行沟通和指令交互也基于汇编脚本来实现,通过脚本解析器分析这些脚本以获得代码地址信息,代码地址信息包括汇编变量地址和内(存储器的内部的代码)、外部代码(外部的接口的代码)跳转地址;获取主控的型号并加载对应的汇编指令计算匹配文件,该文件提供了用于计算连接内、外代码的偏移/跳转地址之间关系的计算公式(例如路径关系,偏移量和实际地址的关系等),根据计算公式和代码地址信息算出实际内、外部代码之间的地址联系,结合对应的汇编脚本生成代码组并输出代码文件。
基于发明的实施例的方法,还包括判断是否存在内部地址文件,所述内部地址文件用于缓存外置存储器的内部汇编代码的地址信息;如果存在内部地址文件则只解析外部汇编脚本,不存在则解析内、外部汇编脚本以获取代码地址信息并存入缓存文件。
基于发明的实施例的方法,还包括根据代码地址区分地址类型并建立内部地址文件。
由于编译器在解析内外部汇编指令代码地址时要花费大量的时间,其中大多数时间都用在解析内部代码上,因为内部代码地址基本上不会变化,故在第一次编译解析内外部汇编指令地址时把内部的指令地址都保存在一个文件中,下次再编译时直接加载内部指令地址然后只解析外部指令就可以了,这样大大的缩短了编译时间,提高了工作效率。
基于发明的实施例的方法,还包括基于地址规则验证内、外部代码地址的合法性。
基于地址的命名规则验证地址合法性,或者检测已经获得的地址是否重复。
基于发明的实施例的方法,所述外置存储器包括u盘、EMMC、SSD。
基于本发明的实施例,一种外置存储器主控代码编译装置,包括:脚本解析器,用于解析内、外部汇编脚本以获取代码地址信息并存入缓存文件,所述代码地址信息包括汇编变量地址和内、外部代码跳转地址;处理器,用于基于主控型号加载对应的汇编指令计算匹配文件,所述汇编指令计算匹配文件用于提供地址计算公式;还用于基于代码地址信息和汇编指令计算匹配文件计算内、外部代码地址;编译器,用于结合内、外部代码地址和内、外部汇编脚本文件生成代码文件。
脚本解析器还用于判断是否存在内部地址文件,所述内部地址文件用于缓存外置存储器的内部汇编代码的地址信息;如果存在内部地址文件则只解析外部汇编脚本,不存在则解析内、外部汇编脚本以获取代码地址信息并存入缓存文件。
处理器还用于根据代码地址区分地址类型并建立内部地址文件。
处理器还用于基于地址规则验证内、外部代码地址的合法性。
所述外置存储器包括u盘、EMMC、SSD。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。
Claims (10)
1.一种外置存储器主控代码编译方法,其特征在于,包括
解析内、外部汇编脚本以获取代码地址信息并存入缓存文件,所述代码地址信息包括汇编变量地址和内、外部代码跳转地址;
基于主控型号加载对应的汇编指令计算匹配文件,所述汇编指令计算匹配文件用于提供地址计算公式;
基于代码地址信息和汇编指令计算匹配文件计算内、外部代码地址;
结合内、外部代码地址和内、外部汇编脚本文件生成代码文件。
2.根据权利要求1所述一种外置存储器主控代码编译方法,其特征在于,还包括判断是否存在内部地址文件,所述内部地址文件用于缓存外置存储器的内部汇编代码的地址信息;
如果存在内部地址文件则只解析外部汇编脚本,不存在则解析内、外部汇编脚本以获取代码地址信息并存入缓存文件。
3.根据权利要求2所述一种外置存储器主控代码编译方法,其特征在于,还包括根据代码地址区分地址类型并建立内部地址文件。
4.根据权利要求1所述一种外置存储器主控代码编译方法,其特征在于,还包括基于地址规则验证内、外部代码地址的合法性。
5.根据权利要求1所述一种外置存储器主控代码编译方法,其特征在于,所述外置存储器包括u盘、EMMC、SSD。
6.一种外置存储器主控代码编译装置,其特征在于,包括:
脚本解析器,用于解析内、外部汇编脚本以获取代码地址信息并存入缓存文件,所述代码地址信息包括汇编变量地址和内、外部代码跳转地址;
处理器,用于基于主控型号加载对应的汇编指令计算匹配文件,所述汇编指令计算匹配文件用于提供地址计算公式;
还用于基于代码地址信息和汇编指令计算匹配文件计算内、外部代码地址;
编译器,用于结合内、外部代码地址和内、外部汇编脚本文件生成代码文件。
7.根据权利要求6所述一种外置存储器主控代码编译装置,其特征在于,脚本解析器还用于判断是否存在内部地址文件,所述内部地址文件用于缓存外置存储器的内部汇编代码的地址信息;
如果存在内部地址文件则只解析外部汇编脚本,不存在则解析内、外部汇编脚本以获取代码地址信息并存入缓存文件。
8.根据权利要求7所述一种外置存储器主控代码编译装置,其特征在于,处理器还用于根据代码地址区分地址类型并建立内部地址文件。
9.根据权利要求6所述一种外置存储器主控代码编译装置,其特征在于,处理器还用于基于地址规则验证内、外部代码地址的合法性。
10.根据权利要求6所述一种外置存储器主控代码编译装置,其特征在于,所述外置存储器包括u盘、EMMC、SSD。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710665450.6A CN107526621B (zh) | 2017-08-07 | 2017-08-07 | 一种外置存储器主控代码编译方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710665450.6A CN107526621B (zh) | 2017-08-07 | 2017-08-07 | 一种外置存储器主控代码编译方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107526621A true CN107526621A (zh) | 2017-12-29 |
CN107526621B CN107526621B (zh) | 2020-09-04 |
Family
ID=60680602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710665450.6A Active CN107526621B (zh) | 2017-08-07 | 2017-08-07 | 一种外置存储器主控代码编译方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107526621B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825386A (zh) * | 2019-11-01 | 2020-02-21 | 腾讯科技(深圳)有限公司 | 代码的编译方法和装置、存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102385524A (zh) * | 2011-12-23 | 2012-03-21 | 浙江大学 | 一种基于混编指令集的编译链指令替换方法 |
CN105760208A (zh) * | 2016-04-12 | 2016-07-13 | 芯讯通无线科技(上海)有限公司 | 计算机程序编译方法及装置 |
CN106406971A (zh) * | 2016-09-26 | 2017-02-15 | 杭州迪普科技有限公司 | 一种代码文件的编译方法及装置 |
-
2017
- 2017-08-07 CN CN201710665450.6A patent/CN107526621B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102385524A (zh) * | 2011-12-23 | 2012-03-21 | 浙江大学 | 一种基于混编指令集的编译链指令替换方法 |
CN105760208A (zh) * | 2016-04-12 | 2016-07-13 | 芯讯通无线科技(上海)有限公司 | 计算机程序编译方法及装置 |
CN106406971A (zh) * | 2016-09-26 | 2017-02-15 | 杭州迪普科技有限公司 | 一种代码文件的编译方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825386A (zh) * | 2019-11-01 | 2020-02-21 | 腾讯科技(深圳)有限公司 | 代码的编译方法和装置、存储介质 |
CN110825386B (zh) * | 2019-11-01 | 2023-07-14 | 腾讯科技(深圳)有限公司 | 代码的编译方法和装置、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107526621B (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9098308B2 (en) | Method and apparatus for code performance analysis based on execution trace information | |
CN106663472B (zh) | 非易失性存储器中的恢复算法 | |
CN102623069B (zh) | 随机激励闪存模型验证方法 | |
CN109710451A (zh) | 基于nand的存储装置的固件事件跟踪及其执行方法和指令集 | |
KR101720676B1 (ko) | 대용량 저장소 디바이스들을 관리하기 위한 장치 및 방법 | |
CN102855941B (zh) | 基于多符号多清理周期分析的抢先存储器修复方法和系统 | |
US20120272123A1 (en) | Data writing method, memory controller and memory storage apparatus | |
CN102347083A (zh) | 通过内部操作验证进行安全的存储器存储 | |
CN103136107A (zh) | 一种嵌入式程序动态分配内存的变量调试方法 | |
KR950006608B1 (ko) | 다중 언어 최적화 컴파일러내의 상수 폴딩 메카니즘을 구성하는 방법 | |
US20200026519A1 (en) | Processor trace extensions to facilitate real-time security monitoring | |
CN102073480B (zh) | 基于时分复用实现多核处理器内核模拟的方法 | |
CN102902906A (zh) | 微处理器指令集验证方法 | |
CN109254883A (zh) | 一种片上存储器的调试装置及方法 | |
CN109697028A (zh) | 虚拟分区管理 | |
CN102722438B (zh) | 一种内核调试的方法和设备 | |
CN110083558A (zh) | 一种用于自适应可编程存储计算加速卡装置 | |
CN107526621A (zh) | 一种外置存储器主控代码编译方法和装置 | |
Wang et al. | A reliability-aware address mapping strategy for NAND flash memory storage systems | |
CN108153550A (zh) | 一种Excel数据导入方法、装置及用户终端 | |
CN102929580B (zh) | 数组多引用访问的分块方法和装置 | |
CN106485020B (zh) | 带有非易失性存储器的处理器芯片仿真器 | |
CN103324589A (zh) | Sd卡控制系统 | |
CN102866963B (zh) | 控制器数据存储与读取方法 | |
CN103389438B (zh) | 一种用于带cpu电路板的焊接检测系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |