CN107526621B - 一种外置存储器主控代码编译方法和装置 - Google Patents

一种外置存储器主控代码编译方法和装置 Download PDF

Info

Publication number
CN107526621B
CN107526621B CN201710665450.6A CN201710665450A CN107526621B CN 107526621 B CN107526621 B CN 107526621B CN 201710665450 A CN201710665450 A CN 201710665450A CN 107526621 B CN107526621 B CN 107526621B
Authority
CN
China
Prior art keywords
code
internal
address
file
external
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.)
Active
Application number
CN201710665450.6A
Other languages
English (en)
Other versions
CN107526621A (zh
Inventor
谭晓戈
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chipsbank Technologies Shenzhen Co ltd
Original Assignee
Chipsbank Technologies Shenzhen Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chipsbank Technologies Shenzhen Co ltd filed Critical Chipsbank Technologies Shenzhen Co ltd
Priority to CN201710665450.6A priority Critical patent/CN107526621B/zh
Publication of CN107526621A publication Critical patent/CN107526621A/zh
Application granted granted Critical
Publication of CN107526621B publication Critical patent/CN107526621B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

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 (6)

1.一种外置存储器主控代码编译方法,其特征在于,包括
判断是否存在内部地址文件;
如果存在内部地址文件则只解析外部汇编脚本以获取代码地址信息并存入缓存文件;
如果不存在内部地址文件,则解析内、外部汇编脚本以获取代码地址信息并存入缓存文件,根据代码地址区分地址类型并建立内部地址文件,其中,
所述代码地址信息包括汇编变量地址和内、外部代码跳转地址,所述内部地址文件用于缓存外置存储器的内部汇编代码的地址信息;
基于主控型号加载对应的汇编指令计算匹配文件,所述汇编指令计算匹配文件用于提供地址计算公式;
基于代码地址信息和汇编指令计算匹配文件计算内、外部代码地址;
结合内、外部代码地址和内、外部汇编脚本生成代码文件。
2.根据权利要求1所述一种外置存储器主控代码编译方法,其特征在于,还包括基于地址规则验证内、外部代码地址的合法性。
3.根据权利要求1所述一种外置存储器主控代码编译方法,其特征在于,所述外置存储器包括u盘、EMMC、SSD。
4.一种外置存储器主控代码编译装置,其特征在于,包括:
脚本解析器,用于判断是否存在内部地址文件,如果存在内部地址文件则只解析外部汇编脚本以获取代码地址信息并存入缓存文件;如果不存在内部地址文件,则解析内、外部汇编脚本以获取代码地址信息并存入缓存文件,根据代码地址区分地址类型并建立内部地址文件,其中,
所述代码地址信息包括汇编变量地址和内、外部代码跳转地址;
处理器,用于基于主控型号加载对应的汇编指令计算匹配文件,所述汇编指令计算匹配文件用于提供地址计算公式;
还用于基于代码地址信息和汇编指令计算匹配文件计算内、外部代码地址,所述内部地址文件用于缓存外置存储器的内部汇编代码的地址信息;
编译器,用于结合内、外部代码地址和内、外部汇编脚本生成代码文件。
5.根据权利要求4所述一种外置存储器主控代码编译装置,其特征在于,处理器还用于基于地址规则验证内、外部代码地址的合法性。
6.根据权利要求4所述一种外置存储器主控代码编译装置,其特征在于,所述外置存储器包括u盘、EMMC、SSD。
CN201710665450.6A 2017-08-07 2017-08-07 一种外置存储器主控代码编译方法和装置 Active CN107526621B (zh)

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 CN107526621A (zh) 2017-12-29
CN107526621B true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825386B (zh) * 2019-11-01 2023-07-14 腾讯科技(深圳)有限公司 代码的编译方法和装置、存储介质

Citations (3)

* Cited by examiner, † Cited by third party
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 杭州迪普科技有限公司 一种代码文件的编译方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
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 杭州迪普科技有限公司 一种代码文件的编译方法及装置

Also Published As

Publication number Publication date
CN107526621A (zh) 2017-12-29

Similar Documents

Publication Publication Date Title
CN110096338B (zh) 智能合约执行方法、装置、设备及介质
US9098308B2 (en) Method and apparatus for code performance analysis based on execution trace information
US9836379B2 (en) Method and system for generating a memory trace of a program code executable on a programmable target
CN103136107A (zh) 一种嵌入式程序动态分配内存的变量调试方法
US20110154299A1 (en) Apparatus and method for executing instrumentation code
CN104281520A (zh) 跟踪和调试的方法、装置及系统
EP2706459B1 (en) Apparatus and method for validating a compiler for a reconfigurable processor
JP6363152B2 (ja) データフロー分析のための装置、方法、コンピュータプログラム及び記憶媒体
CN111506335A (zh) 一种基于dsp+fpga的程序在线升级方法及系统
CN102722438B (zh) 一种内核调试的方法和设备
CN107526621B (zh) 一种外置存储器主控代码编译方法和装置
US11520682B2 (en) Code coverage method for embedded system on chip
CN103955394A (zh) 一种基于推迟提交的gpu虚拟化优化方法
CN111666102A (zh) 文件格式转换方法、芯片验证方法、相关装置及网络芯片
US11836084B2 (en) Embedding data in address streams
CN113094252A (zh) 测试用例生成方法、装置、计算机设备及存储介质
CN114510723B (zh) 一种智能合约权限管理漏洞检测方法及装置
CN111310172B (zh) 通过反汇编验证处理器执行轨迹的方法及控制部件
US11080033B2 (en) Method for installing a program on an embedded system, an embedded system for such a method, and a method for generating additional information
CN116775040B (zh) 实现代码疫苗的插桩方法及基于代码疫苗的应用测试方法
CN112612471B (zh) 代码处理方法、装置、设备及存储介质
CN110162438B (zh) 仿真调试装置和仿真调试方法
Yan et al. Annotation and analysis combined cache modeling for native simulation
CN104462368A (zh) 数据计算方法、装置和服务器
Su et al. Accelerating full-system simulation and app analysis through focused multi-granularity profiling

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