CN116594606A - 用于软件和硬件组件配置和内容生成的方法、系统和设备 - Google Patents

用于软件和硬件组件配置和内容生成的方法、系统和设备 Download PDF

Info

Publication number
CN116594606A
CN116594606A CN202310105757.6A CN202310105757A CN116594606A CN 116594606 A CN116594606 A CN 116594606A CN 202310105757 A CN202310105757 A CN 202310105757A CN 116594606 A CN116594606 A CN 116594606A
Authority
CN
China
Prior art keywords
computing device
user
programmable computing
configuration
option
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.)
Pending
Application number
CN202310105757.6A
Other languages
English (en)
Inventor
F·鲁伊勒
E·格兰丁
B·贾布里
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.)
STMicroelectronics SA
STMicroelectronics Grand Ouest SAS
Original Assignee
STMicroelectronics SA
STMicroelectronics Grand Ouest SAS
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 STMicroelectronics SA, STMicroelectronics Grand Ouest SAS filed Critical STMicroelectronics SA
Publication of CN116594606A publication Critical patent/CN116594606A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

本公开涉及用于软件和硬件组件配置和内容生成的方法、系统和设备。用于基于用户选择的配置信息生成针对可编程计算设备的内容的系统、方法和电路装置。设置注册表基于用户的选择被生成。设置注册表和用户选择的配置信息被利用以生成内容,诸如代码、数据、参数、设置等。当内容被提供给可编程计算设备时,内容初始化、配置或控制可编程计算设备的一个或多个软件和硬件方面,诸如引导序列配置、内部外围设备配置、可编程计算设备的状态、在可编程计算设备的状态之间的转换等,以及其各种组合。

Description

用于软件和硬件组件配置和内容生成的方法、系统和设备
技术领域
本公开总体上涉及诸如嵌入式应用中常用类型的电子电路。更具体地但是非排他地,本公开涉及生成用于对诸如通用和专用微控制器和微处理器的电子电路进行编程的内容,包括与电子电路的组件的配置相关的内容。
背景技术
许多可编程微控制器和微处理器架构利用特定代码来以用户期望的方式初始化或配置微控制器和微处理器的操作。代码可以建立时钟设置、期望的引导序列、分配外部外围设备、配置内部外围设备、嵌入要在微控制器或微处理器上执行的软件、以及准备其它软件或硬件配置设置。为了生成这种代码,用户将必须对微控制器或微处理器的特定代码或硬件细微差别进行训练,微控制器或微处理器的特定代码或硬件细微差别可以从一种架构变化到另一种架构。一些架构包括使能用户以可视化配置设置的图形工具。
发明内容
现有内容生成工具通常是刚性的,并且在生成内容时不为用户提供很大的灵活性。现有的内容工具也经常与特定设备相关联,并且每个设备可能需要不同的内容生成工具。本文描述的实施例是针对这些和其它考虑而作出的。
本文所描述的实施例利用图形用户界面来使能用户以选择和配置可编程计算设备,使得为可编程计算设备产生内容(例如,代码,设置,参数,选项位或字节,EEPROM数据等)。本文描述的实施例便于基于用户的选择为可编程计算设备生成可配置内容,而无需用户专门编写该内容。在一些实施例中,除了图形用户界面之外或代替图形用户界面,可以采用命令行界面,以促进将脚本和自动化用作配置过程的一部分。
在一个实施例中,一种方法包括:经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的组件的列表;经由图形用户界面从组件的列表接收针对项目的至少一个用户选择组件的第一选择;响应于至少一个用户选择组件可配置:经由图形用户界面呈现用于至少一个用户选择组件的用户可选择模板的第一列表;经由图形用户界面从用户可选择模板的第一列表接收至少一个用户可选择模板的第二选择;经由图形用户界面呈现用于至少一个用户选择组件的用户可选择参数的第二列表;经由图形用户界面从用户可选择参数的第二列表接收至少一个用户可选择参数的第三选择;基于至少一个用户选择模板的第二选择和至少一个用户选择参数的第三选择来生成用于至少一个用户选择组件的设置;以及基于用于至少一个用户选择组件中的每个用户选择组件的设置来生成或更新设置注册表;以及基于至少一个用户选择组件和设置注册表生成用于可编程计算设备的内容。
在一个实施例中,非瞬态计算机可读介质的内容配置处理设备以执行方法。该方法包括:经由图形用户界面向用户显示针对与可编程计算设备相关联的项目的组件的列表;经由图形用户界面从组件的列表接收针对项目的至少一个用户选择组件的第一选择;响应于至少一个用户选择组件可配置:经由图形用户界面显示针对至少一个用户选择组件的用户可选择模板的第一列表;经由图形用户界面从用户可选择模板的第一列表接收至少一个用户可选择模板的第二选择;经由图形用户界面显示针对至少一个用户选择组件的用户可选择参数的第二列表;经由图形用户界面从用户可选择参数的第二列表接收至少一个用户可选择参数的第三选择;基于至少一个用户选择模板的第二选择和至少一个用户选择参数的第三选择来生成用于至少一个用户选择组件的设置;以及基于用于至少一个用户选择组件中的每个用户选择组件的设置来生成或更新设置注册表;以及基于至少一个用户选择组件和设置注册表生成用于可编程计算设备的内容。
在一个实施例中,一种计算设备包括:显示设备;存储器,其在操作中存储计算机指令;以及至少一个处理器,至少一个处理器在操作中执行计算机指令以:经由显示设备向用户呈现用于与可编程计算设备相关联的项目的组件的列表;从组件的列表接收针对项目的至少一个用户选择组件的第一选择;响应于至少一个用户选择组件可配置:经由显示设备呈现用于至少一个用户选择组件的用户可选择模板的第一列表;从用户可选择模板的第一列表接收至少一个用户可选择模板的第二选择;经由显示设备呈现用于至少一个用户选择组件的用户可选择参数的第二列表;从用户可选择参数的第二列表接收至少一个用户可选择参数的第三选择;基于至少一个用户选择模板的第二选择和至少一个用户选择参数的第三选择来生成用于至少一个用户选择组件的设置;以及基于至少一个用户选择组件中的每个用户选择组件的设置来生成或更新设置注册表;以及基于至少一个用户选择组件和设置注册表生成用于可编程计算设备的内容。
在一个实施例中,一种系统包括可编程计算设备和非瞬态计算机可读介质。非瞬态计算机可读介质具有在操作中使得处理器执行以下操作的内容:经由图形用户界面向用户显示针对与可编程计算设备相关联的项目的组件的列表;经由图形用户界面从组件的列表接收针对项目的至少一个用户选择组件的第一选择;响应于至少一个用户选择组件可配置:经由图形用户界面显示针对至少一个用户选择组件的用户可选择模板的第一列表;经由图形用户界面从用户可选择模板的第一列表接收至少一个用户可选择模板的第二选择;经由图形用户界面显示针对至少一个用户选择组件的用户可选择参数的第二列表;经由图形用户界面从用户可选择参数的第二列表接收至少一个用户可选择参数的第三选择;基于至少一个用户选择模板的第二选择和至少一个用户选择参数的第三选择来生成用于至少一个用户选择组件的设置;以及基于用于至少一个用户选择组件中的每个用户选择组件的设置来生成或更新设置注册表;基于至少一个用户选择组件和设置注册表生成用于可编程计算设备的内容;以及向可编程计算设备提供内容。
在一个实施例中,一种方法包括:经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的一组引导配置选项,呈现一组引导配置选项包括:呈现与可编程计算设备相关联的配置引脚设置;呈现与可编程计算设备相关联的选项字节值;以及呈现一组引导配置选项;经由图形用户界面接收用于从所呈现的一组引导配置选项中选择的项目的引导配置选项的选择;基于选择的引导配置选项生成或更新设置注册表;以及基于选择的引导配置选项和设置注册表生成用于可编程计算设备的内容。
在一个实施例中,非瞬态计算机可读介质的内容配置处理设备以执行方法。该方法包括:经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的一组引导配置选项,呈现一组引导配置选项包括:呈现与可编程计算设备相关联的配置引脚设置;呈现与可编程计算设备相关联的选项字节值;以及呈现一组引导配置选项;经由图形用户界面接收从所呈现的一组引导配置选项中选择的项目的引导配置选项的选择;基于选择的引导配置选项生成或更新设置注册表;以及基于选择的引导配置选项和设置注册表生成用于可编程计算设备的内容。
在一个实施例中,一种计算设备包括:显示设备;存储器,其在操作中存储计算机指令;以及至少一个处理器。至少一个处理器在操作中执行计算机指令以:经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的一组引导配置选项,呈现一组引导配置选项包括:呈现与可编程计算设备相关联的配置引脚设置;呈现与可编程计算设备相关联的选项字节值;以及呈现一组引导配置选项;经由图形用户界面接收针对从所呈现的一组引导配置选项中选择的项目的引导配置选项的选择;基于选择的引导配置选项生成或更新设置注册表;以及基于选择的引导配置选项和设置注册表生成用于可编程计算设备的内容。
在一个实施例中,一种系统包括可编程计算设备和非瞬态计算机可读介质。非瞬态计算机可读介质具有在操作中使得处理器执行以下操作的内容:经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的一组引导配置选项,呈现一组引导配置选项包括:呈现与可编程计算设备相关联的配置引脚设置;呈现与可编程计算设备相关联的选项字节值;以及呈现一组引导配置选项;经由图形用户界面接收从所呈现的一组引导配置选项中选择的项目的引导配置选项的选择;基于选择的引导配置选项生成或更新设置注册表;以及基于选择的引导配置选项和设置注册表生成用于可编程计算设备的内容。
在一个实施例中,一种方法包括:经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的一组配置选项,呈现一组配置选项包括;呈现可编程计算设备的一组内部外围设备;呈现可编程计算设备的接口的一组焊盘;以及呈现可编程计算设备的一组引脚;经由图形用户界面接收将一组内部外围设备中的内部外围设备与一组引脚中的引脚相关联的配置选择信息;基于接收的配置选择信息维护设置注册表;以及基于接收的配置选择信息和设置注册表生成用于可编程计算设备的内容。
在一个实施例中,非瞬态计算机可读介质的内容配置处理设备以执行方法。该方法包括:经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的一组配置选项,呈现一组配置选项包括:呈现可编程计算设备的一组内部外围设备;呈现可编程计算设备的接口的一组焊盘;以及呈现可编程计算设备的一组引脚;经由图形用户界面接收将一组内部外围设备中的内部外围设备与一组引脚中的引脚相关联的配置选择信息;基于接收的配置选择信息维护设置注册表;以及基于接收的配置选择信息和设置注册表生成用于可编程计算设备的内容。
在一个实施例中,计算设备包括显示设备,在操作中存储计算机指令的存储器,以及至少一个处理器。至少一个处理器在操作中执行计算机指令以:经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的一组配置选项,呈现一组配置选项包括:呈现可编程计算设备的一组内部外围设备;呈现可编程计算设备的接口的一组焊盘;以及呈现可编程计算设备的一组引脚;经由图形用户界面接收将一组内部外围设备中的内部外围设备与一组引脚中的引脚相关联的配置选择信息;基于接收的配置选择信息维护设置注册表;以及基于接收的配置选择信息和设置注册表生成用于可编程计算设备的内容。
在一个实施例中,一种系统包括可编程计算设备和非瞬态计算机可读介质。非瞬态计算机可读介质具有在操作中使得处理器执行以下操作的内容:经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的一组配置选项,呈现包括一组配置选项;呈现可编程计算设备的一组内部外围设备;呈现可编程计算设备的接口的一组焊盘;呈现可编程计算设备的一组引脚;经由图形用户界面接收将一组内部外围设备中的内部外围设备与一组引脚中的引脚相关联的配置选择信息;基于接收的配置选择信息维护设置注册表;以及基于接收的配置选择信息和设置注册表生成用于可编程计算设备的内容。
在一个实施例中,一种方法包括:由主计算设备经由图形用户界面向用户呈现与可编程计算设备相关联的项目的状态的列表;由主计算设备经由图形用户界面从状态的列表接收针对项目的第一用户选择的状态的第一选择;由主计算设备经由图形用户界面接收针对项目的第二用户选择的状态的第二选择;由主计算设备生成第一用户选择的状态至第二用户选择的状态之间的转换;由主计算设备基于第一用户选择的状态、第二用户选择的状态以及所生成的在第一用户选择的状态与第二用户选择的状态之间的转换来生成或更新设置注册表;以及由主计算设备基于设置注册表生成用于可编程计算设备的内容。
在一个实施例中,一个系统包括:具有第一存储器的可编程计算设备,第一存储器在操作中存储第一计算机指令;以及至少一个第一处理器。至少一个第一处理器在操作中执行第一计算机指令以:接收配置第一用户选择的状态、第二用户选择的状态、以及在第一用户选择的状态和第二用户选择的状态之间转换的内容;接收从第一用户选择的状态前进至第二用户选择的状态的请求;以及基于转换将可编程计算设备从所述第一用户选择状态转换至第二用户选择状态。系统包括主计算设备,该主计算设备包括:显示设备;第二存储器,其在操作中存储第二计算机指令;以及至少一个第二处理器。至少一个第二处理器在操作中执行第二计算机指令以:经由显示设备呈现与可编程计算设备相关联的项目的状态的列表;接收针对来自状态的列表的项目的第一用户选择的状态的第一选择;接收针对项目的第二用户选择的状态的第二选择;生成从第一用户选择的状态至第二用户选择的状态的转换;基于第一用户选择的状态、第二用户选择的状态以及第一用户选择的状态与第二用户选择的状态之间的转换来生成设置注册表;以及基于设置注册表生成用于可编程计算设备的内容。
在一个实施例中,非瞬态计算机可读介质的内容配置处理设备以执行方法。该方法包括:经由图形用户界面向用户呈现与可编程计算设备相关联的项目的状态的列表;经由图形用户界面从状态的列表接收针对项目的第一用户选择的状态的第一选择;经由图形用户界面接收针对项目的第二用户选择的状态的第二选择;生成从第一用户选择的状态至第二用户选择的状态的转换;基于第一用户选择的状态、第二用户选择的状态以及所生成的在第一用户选择的状态与第二用户选择的状态之间的转换来维护设置注册表;以及基于设置注册表生成用于可编程计算设备的内容。
在一个实施例中,一种非瞬态计算机可读媒体的内容配置可编程计算设备的微控制器以执行一种方法。该方法包括:接收配置第一用户选择的状态、第二用户选择的状态、以及在第一用户选择的状态和第二用户选择的状态之间转换的内容;接收从第一用户选择的状态前进至第二用户选择的状态的请求;以及通过以下各项基于所接收的内容将可编程计算设备从第一用户选择的状态转换至第二用户选择的状态:选择与所述第二用户选择的状态相关联的每个执行元件;确定针对每个执行元件在第一用户选择的状态和第二用户选择的状态之间的配置差;针对至少一个执行元件的至少一个配置差应用至少一个转换约束;以及将每个执行元件的配置差从第一用户选择的状态应用至第二用户选择的状态。
在一个实施例中,计算设备包括在操作中存储计算机指令的存储器,以及至少一个处理器。至少一个处理器在操作中执行计算机指令以:经由显示设备呈现用于与可编程计算设备相关联的项目的状态的列表;接收针对来自状态的列表的项目的第一用户选择的状态的第一选择;接收针对项目的第二用户选择的状态的第二选择;生成从第一用户选择的状态到第二用户选择的状态的转换;基于第一用户选择的状态、第二用户选择的状态以及在第一用户选择的状态与第二用户选择的状态之间的转换来生成设置注册表;以及基于设置注册表生成用于可编程计算设备的内容。
附图说明
参考以下附图描述非限制性和非穷尽性实施例,其中除非上下文另有指示,否则在各个视图中相同的标号指代相同的部分。附图中元件的大小和相对位置不必按比例绘制。例如,各种元件的形状被选择、放大和定位以提高绘图清晰度。为了便于在附图中识别,已经选择了所绘制的元件的特定形状。在下文中参考附图描述一个或多个实施例,其中:
图1是示出用于实现本文描述的实施例的示例计算环境的框图。
图2是示出根据本文描述的实施例的用于存储在生成内容中使用的方面的示例概念结构的框图。
图3示出了根据本文描述的实施例的用于生成内容的过程的逻辑流程图。
图4示出了根据本文描述的实施例的用于在内容生成过程期间更新图形用户界面的过程的逻辑流程图。
图5是根据本文描述的实施例的组件参数文件的说明性示例。
图6是根据本文描述的实施例的从图5的参数文件获得值的组件参数文件的说明性示例。
图7是根据本文描述的实施例的使能用户针对项目选择组件的图形用户界面的说明性示例。
图8是根据本文描述的实施例的使能用户针对用户选择组件选择参数的图形用户界面的说明性示例。
图9示出了根据本文描述的一些实施例的用于生成内容的过程的逻辑流程图。
图10示出了根据本文描述的实施例的用于生成与可编程计算设备的引导序列相关联的内容的过程的逻辑流程图。
图11是根据本文描述的实施例的图形用户界面的说明性示例,该图形用户界面使能用户以选择与引导序列相关联的参数和选项。
图12A和12B示出了根据本文描述的实施例的图形用户界面的示例,图形用户界面使能用户以选择与内部外围设备相关联的信号耦合和连接。
图13示出了根据本文描述的实施例的用于生成与配置可编程计算设备的内部外围设备相关联的内容的过程的逻辑流程图。
图14是示出根据本文描述的实施例的软件一致性检查的概念图。
图15是示出根据本文描述的实施例的电完整性检查的概念图。
图16至18是根据本文描述的实施例的组件参数文件的说明性示例。
图19是图示应用状态和系统状态转换的概念图。
图20示出了根据本文描述的实施例的用于生成限定状态和转换的内容的过程的逻辑流程图。
图21示出了根据本文描述的实施例的用于从第一状态转换至第二状态的过程的逻辑流程图。
图22示出了根据本文描述的实施例的用于从第一状态转换至第二状态的另一过程的逻辑流程图。
图23是根据本文描述的实施例的使能用户以选择针对项目的状态的图形用户界面的说明性示例。
图24是示出根据本文描述的实施例的用于管理在生成内容中使用的状态信息的示例概念结构的框图。
图25是根据本文描述的实施例的在用户选择的状态之间的转换结构的说明性示例。
具体实施方式
在以下描述中,连同附图一起,阐述某些细节以便提供对设备、系统、方法和制品的各种实施例的透彻理解。然而,所属领域的技术人员将了解,可以在没有这些细节的情况下实践其它实施例。在其它实例中,与例如电路(诸如晶体管、乘法器、加法器、除法器、比较器、集成电路、逻辑门、有限状态机、加速计、陀螺仪、磁场传感器、存储器、总线系统等)相关联的众所周知的结构和方法未在一些图中详细地被展示或被描述,以避免不必要地模糊对实施例的描述。此外,为了避免不必要地模糊对实施例的描述,没有示出或描述与本公开的环境(包括但不限于通信系统和网络)相关联的众所周知的结构或组件。
除非上下文另有说明,否则在整个说明书和随后的权利要求书中,词语“包含”及其变体,诸如“包括”和“包含”应被理解为开放的、包括性的含义,即“包括但不限于”。
在整个说明书、权利要求书和附图中,除非上下文另有说明,否则以下术语采用本文明确关联的含义。术语“本文”是指与本申请相关的说明书、权利要求书和附图。短语“在一个实施例中”、“在另一实施例中”、“在各种实施例中”、“在一些实施例中”、“在其它实施例中”及其其它变形是指本发明的一个或多个特征、结构、功能、限制或特性,并且除非上下文另外指示,否则不限于相同或不同实施例。如本文所用,术语“或”是包含性的“或”运算符,并且等同于短语“A或B,或A和B两者”或“A或B或C,或其任何组合”,并且具有附加要素的列表被类似地处理。术语“基于”不是排他性的,并且允许基于未描述的附加特征、功能、方面或限制,除非上下文另有说明。此外,在整个说明书中,“一个”、“一种”和“该”的含义包括单数和复数指代。此外,特定特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合以获得另外的实施例。
图1是示出用于实现本文描述的实施例的示例计算环境100的框图。环境100包括可编程计算设备108和主计算设备150。
可编程计算设备108具有一个或多个处理器110、输入/输出外围设备112和可编程界面119。如所示出的,可编程计算设备包括一个或多个芯片上系统(SoC)109,每个芯片上系统可以包括一个或多个处理器110、一个或多个输入/输出外围设备112以及可编程界面119,可编程界面119可以耦合到可编程计算设备108的输入/输出外围设备112和可编程界面119。
处理器110可以具有一个或多个处理核114、一个或多个存储器116、以及相关联的配置引脚、跳线或开关118。相关联的配置引脚、跳线或开关118通常可以在SoC 109的级别而不是在处理器级别。在图1中,处理器110a包括处理核114a至114n,并且处理器110b包括处理核114x。计算设备108可以包括其他内部外围设备132,诸如图形处理单元、无线网络模块、模数转换器、微电子机械系统、传感器等,以及其他通用输入/输出(GPIO)界面134。内部外围设备132和GPIO 134可以处于各种级别,诸如处理器110级别、SoC 109级别、可编程计算设备级别108、处理核114级别(例如,处理核114的可配置组件,为了便于说明未在图1中示出)、或其组合。
可编程计算设备108可以是微处理器、微控制器、系统板或其它计算机设备,其是或包含具有可编程界面119的一个或多个集成电路。在一些实施例中,可编程计算设备108可以包括多个SoC(参见SoC109),每个SoC具有可编程界面119,并且可编程计算设备108可以包括公共可编程界面119,公共可编程界面119在操作中可以耦合到多个SoC中的每个SoC的可编程界面119。
在一些实施例中,处理器110可以包括状态机、微处理器、可编程逻辑电路、离散电路、逻辑门、寄存器等及其各种组合。在操作中,处理器110可以控制可编程计算设备108的引导、可编程计算设备108的整体操作、由可编程计算设备108对应用程序的执行、在内部外围设备132与外部设备(例如所说明的外部外围设备170)之间的通信等。
可编程计算设备108还包括一个或多个存储器116,诸如一个或多个易失性或非易失性存储器,诸如闪存、或其组合,其可以存储例如与由可编程计算设备108执行的应用和操作相关的全部或部分指令和数据。例如,一个或多个存储器116可以存储计算机指令,这些指令在由处理器110执行时,引导可编程计算设备108或使可编程计算设备108执行期望的功能。存储器116还可以存储用于配置可编程计算设备108的硬件的信息。例如,图1所示的选项字节117可以存储被用于配置可编程计算设备108的硬件的信息。存储器116可以被包括在各种级别处,诸如可编程计算设备108或板级,或板级,在SoC109级别处、在处理器级别110处,在处理核114级别处等,以及它们的各种组合。
如上所述,可编程计算设备108还包括一个或多个内部外围设备132,诸如通用异步收发器(UART)、定时器、模数(A/D)转换器、数模(D/A)转换器、集成电路间(IC2)界面、串行外围设备(SPI)界面等。如示出的,处理器110a包括与处理核114a-114n分离的一个或多个内部外围设备132,处理器110b包括与处理核114x分离的一个或多个内部外围设备132,并且SoC 109包括与处理器110a、110b分离的一个或多个内部外围设备132。内部外围设备132也可以被包括在可编程计算设备108或板级、并且处理核也可以具有可配置组件。
输入/输出外围设备112可以包括一个或多个通用输入/输出(GPIO)界面134、专用输入或输出界面(例如,串行输入/输出端口)、无线界面等。在一些实施例中,输入/输出外围设备112可以被配置为从其他计算设备接收输入数据,或者可以被配置为向诸如外部外围设备170等其他计算设备提供输出数据。例如,GPIO 134可以被配置为从外部计算设备接收数据并且将该数据提供给内部外围设备132,以从内部外围设备132接收数据并且将数据提供给外部计算设备或其组合。如示出的,处理核114a包括一个或多个GPIO界面134,处理器110a包括与处理核114a-114n分离的一个或多个GPIO界面134,处理器110b包括与处理核114x分离的一个或多个GPIO界面134,并且可编程设备108包括与处理器110a、110b分离的一个或多个GPIO界面134。GPIO界面134可以被包括在各种级别处,例如可编程设备108级别、SoC 119级别等,以及它们的各种组合。
可编程计算设备108还可以包括各种级别的一个或多个总线系统(未示出),这些总线系统可以被配置为使得SoC 109、处理器110、输入/输出外围设备112(例如,在板与SoC之间的边界处)、处理核114、存储器116、配置引脚118(例如,在板与SoC之间的边界处)、内部外围设备132、GPIO 134、或其他电路或电路装置(未示出)可以彼此通信地被耦合,以向其他组件发送数据或从其他组件接收数据,或者发送数据和从其他组件接收数据。总线系统可以包括被电耦合到可编程计算设备108的各种组件的一个或多个数据、地址、电源或控制总线、或其某种组合。
主计算设备150包括处理器152、输入/输出界面154、存储器156和显示器158。主计算设备150被配置为采用本文中所描述的实施例来生成图形用户界面以呈现给用户,以使能用户选择并且配置组件,并且从组件生成内容以用于编程和配置可编程计算设备108的软件或硬件或软件和硬件两者。处理器152可以包括一个或多个处理核,处理核被配置为执行计算机指令以采用本文描述的实施例。虽然主机计算设备150可以实现为独立系统,但实施例不限于此。例如,可以采用分布式实施例(例如,在本地主机计算设备上执行的应用程序可以与远程服务器通信,远程服务器可以提供主机计算设备150的全部或部分功能)。
存储器156可以包括一个或多个各种类型的非易失性和/或易失性存储技术。存储器156的示例可以包括但不限于闪存、硬盘驱动器、光盘驱动器、固态驱动器、各种类型的随机存取存储器(RAM)、各种类型的只读存储器(ROM)、其它计算机可读存储介质(也称为处理器可读存储介质)等、或其任何组合。存储器156可以被用于存储信息,包括由处理器152用来执行动作(包括本文描述的实施例)的计算机可读指令。存储器152还可以存储其它信息,这将在下面结合图2更详细地被讨论。
输入/输出界面154可以包括一个或多个其它数据输入或输出界面。例如,输入/输出界面154可以包括显示设备158或向显示设备158提供数据,显示设备158可以被用于向用户呈现图形用户界面。输入/输出界面154可以接受来自用户的输入以选择和配置或定制组件,如本文描述。此外,输入/输出界面154被配置为向可编程计算设备108提供如本文描述的生成的内容。
图1的系统100的实施例可以包括比所示出的更少的组件、可以包括比所示出的更多的组件、并且可以以各种方式组合或分离组件。例如,可编程计算设备108的可编程界面119可以是输入/输出外围设备112的一部分,多个可编程界面可以被采用(例如,用于不同的SoC109、处理器110或处理核114),处理器110a的处理核114a至114n可以具有分离的存储器116和配置引脚118、共享的存储器116和配置引脚118、输入外围设备132、输入/输出外围设备112、以及GPIO界面134可以在各种实施例中被组合或拆分,或其各种组合。在另一示例中,显示器158在一些实施例中可以是输入/输出接口154的一部分(例如,可以采用触摸屏来显示选项并接收用户输入)。
图2是示出根据本文描述的实施例的用于存储在生成内容时使用的方面的存储器156的示例概念结构的框图。存储器156可以是来自图1的主计算设备150的存储器156。
存储器156可以存储可配置组件204、准备就绪组件220、全局映射或设置注册表222、以及针对每个可配置组件224的设置结构。在一些实施例中,全局映射或设置注册表222和设置文件可以被组合。存储器156还可以存储可由处理器(例如,图1中的处理器152)执行以执行本文描述的实施例的计算机指令226。被存储在存储器156中的数据可以利用标准语法(例如,JSON模式),其使能使用或受益于语法的标准库(例如,JSON形式)的使用。
可配置组件204包括至少一个可配置组件206a-206c。可配置组件206a-206c包括或描述与诸如图1中的可编程计算设备108等可编程计算设备的软件或硬件方面相关联的某些配置、控制、实现或功能。这些可配置组件206a-206c具有可以被用户选择或设置的一个或多个参数(例如,约束或变量)。
可配置组件206a-206c可以包括参数文件、模板文件或参数文件和模板文件两者。例如,可配置组件206a包括参数208和模板210,可配置组件206b包括参数209但不包括模板,并且可配置组件206c包括模板211但不包括参数。
参数208和209可以包括存储可以被用户选择或设置的可配置组件的参数的一个或多个文件。参数208和209可以存储用户可以针对一个或多个参数选择的可能值。这些值可以是直接值、高级表达式、对全局映射或设置注册表的查询、或对其它参数(例如,其它参数208、209)或数据库(未示出)的查询。参数208和209可以被用于配置或实现与可编程计算设备相关联的一个或多个软件或硬件方面。在各种实施例中,可以利用一个或多个通用的或定制的语法结构来写入或生成参数208和209。该语法是指示如何表达组件或模板的可配置性的一组规则。
在各种实施例中,参数208和209中的一个或多个参数可以至少部分地被另一参数、组件或模板来限定或限制。因此,一个或多个参数可以被取决于一个或多个其他参数、组件或模板,这些参数、组件或模板可以创建参数之间的各种相关性。
模板210和211可以包括存储先前生成的模板的一个或多个文件。模板210和211是用于可编程计算设备的配置工具。模板210和211可以是包含仪表化内容的文件,仪表化内容被用于生成内容以初始化、配置或控制可编程计算设备108的软件或硬件方面。在一些实施例中,模板210和211包含用手把模板化语言表示的C代码。在内容生成阶段处,仪表化部分可以被来自全局映射或设置注册表222的信息代替,这将在下面被更详细地描述。
在一些实施例中,模板210和211中的一个或多个模板可以直接地或间接地依赖于由用户例如通过全局映射或设置注册表选择的参数。例如,可配置组件206a可以包括单个模板210,其使用与参数208中限定的四个用户可选择参数相对应的全局注册表值。在一些实施例中,模板可以被用户选择或彼此链接,或者用户可以选择在内容生成过程期间是否使用特定模板,包括在互斥模板之间进行选择。在至少一个实施例中,一个或多个模板210和211可以依赖于或从要在可编程计算设备上被实现的其它模板、其它组件或其它软件或硬件项目获得值。
准备就绪组件220是配置或引导可编程计算设备的一个或多个软件或硬件方面的先前设计的组件。在至少一个实施例中,准备就绪组件220也可以被称为不可配置组件。在各种实施例中,准备就绪组件220不包括任何用户可选特征。相反,准备就绪组件220是完全可操作的,并且可以配置或实现可编程计算设备的一个或多个软件或硬件方面,而无需来自用户的进一步输入或选择。如以下更详细地讨论的,可以向用户呈现图形用户界面,在该图形用户界面中用户可以选择从项目中添加或移除准备就绪的组件。
针对可配置组件224的设置是可选的,并且存储针对每个用户选择的可配置组件、参数和模板的配置选择的结果。例如,针对可配置组件224的特定设置可以从模板210中标识由用户选择的一个或多个模板。针对可配置组件224的设置还可以包含与由用户选择参数208相关联的值。在一些实施例中,针对可配置组件224的设置还可以存储可编程计算设备的软件或硬件方面的可选用户设置。在一些实施例中,针对可配置组件224的设置可以被用于调试目的。
在一些实施例中,针对每个选择的可配置组件204生成单个设置结构224。在其它实施例中,针对单个选择的可配置组件204生成多个设置结构224。在其他实施例中,可以针对多个选择的配置组件204生成单个设置结构224。此外,可以针对多个选择的配置组件204生成多个设置结构224。在一些实施例中,这些设置结构224可以被存储为JSON文件。
全局映射或设置注册表222是集中所有通过用户对可配置组件204、参数和模板的选择而生成的用户选择和设置的存储器内对象。全局映射或设置注册表存储器内对象也可以被存储并且与文件同步以促进其持久性。通过扩展,全局映射或设置注册表222还可以指提供字典、获取器/设置器或服务以基于表达或相关性来计算或重新计算针对可编程计算设备的内容的软件组件。总的来说,全局映射或设置注册表222是存储可编程计算设备的软件组件设置和硬件平台设置的字典或数据库。在一些实施例中,可以针对可编程计算设备的各种软件和硬件方面生成单独的全局映射或设置注册表。
如本文描述,全局映射或设置注册表222是实现一组服务以检索、存储、计算、重新计算或解析由用户选择的值的软件组件。在各种实施例中,全局映射或设置注册表222可以包括JSON对象,该JSON对象具有由用户选择组件、模板和参数值的一组访问器(API)。在一些实施例中,全局映射或设置注册表222可以是针对每个可配置组件224的所有设置的级联。在其它实施例中,可以直接从用户的选择来更新全局映射或设置注册表222,而不使用或访问针对每个可配置组件224的设置。在一些实施例中,除了JSON对象之外,全局映射或设置注册表222还包括服务或与服务相关联。
如以下更详细地论述,主计算设备(诸如图1中的主计算设备150)利用全局映射或设置注册表222连同选择的可配置组件204和任何选择的准备就绪组件220以生成内容,内容提供至可编程计算设备并且由可编程计算设备使用以实施、控制或配置可编程计算设备的一个或多个软件方面、可编程计算设备的一个或多个硬件方面或以上两者。
现在将参照图3和4描述一个或多个实施例的操作,并且为了方便将参照上述图1和2的实施例进行描述。在各个实施例的至少一个实施例中,分别结合图3和4描述的过程300和400可以由一个或多个计算设备来被实现或在其上被执行,诸如图1中的主计算设备150执行指令、诸如存储在存储器156中的指令226(见图2)。
图3示出了根据本文描述的实施例的用于生成内容的过程300的逻辑流程图。过程300在开始块之后、在块302处开始,在块302处发起用于生成内容的项目以在诸如图1中的可编程计算设备108等可编程计算设备上实现或配置可编程计算设备。在一些实施例中,项目启动包括向用户呈现图形用户界面。图形用户界面请求或包括针对用户选择特定可编程计算设备的输入界面。针对项目的全局映射或设置注册表还被启动。全局映射或设置注册表可以包括可以被预定的限定的结构,或用于特定可编程计算设备的初始设置。
在一些实施例中,针对可编程计算设备启动用于软件和硬件的单个项目。如此,单个全局映射或设置注册表可以被生成。在一些实施例中,可以针对可编程计算设备的软件启动第一项目,并且可以针对可编程计算设备的硬件启动第二项目。然后可以针对单独的项目生成单独的全局映射或设置注册表,并且这些注册表可以具有彼此的相关性。在至少一个这种实施例中,针对单独的软件和硬件项目,过程300可以顺序地或并行地被执行。在一些实施例中,过程300可以被执行用于同时处理软件和硬件项目两者。
过程300前进到块304,其中在图形用户界面中向用户呈现用于项目的多个组件的列表。在至少一个实施例中,可以基于针对项目选择的特定可编程计算设备针对用户生成组件的列表。这些组件可以是针对可编程计算设备设计的或与可编程计算设备兼容的组件。在一些实施例中,可以基于可编程计算设备的执行上下文特定性来选择组件列表以用于呈现。在一些架构中,用于特定处理核或特定操作模式(例如,信任区模式)的执行上下文可以由用户选择。被呈现给用户的组件的列表可以取决于这些用户选择。组件的列表可以包括可配置组件,诸如图2中的可配置组件204;或非可配置组件,诸如图2中的准备就绪组件220;或其一些组合。
过程300在块306处继续,在块306处组件的用户选择被接收。在至少一个实施例中,用户可以经由图形用户界面从列表中选择组件。虽然过程300讨论了用户的一次单个组件的选择,但是实施例不限于此。在一些实施例中,用户可以选择多个组件。
过程300接下来前进到判定块308处,在判定块308处确定选择的组件是可配置组件还是非可配置组件。在一些实施例中,组件可以具有指示组件是否可以由用户配置的标签或其它标识符。在其它实施例中,可以维护可配置的数据库或其它数据结构和不可配置组件的数据库或其它数据结构,并且将其与选择的组件进行比较。如果选择的组件可配置,则过程300从块308流向块310;否则,过程300从块308流向块322。
如上所述,用户可以选择多个组件;如果这样,则过程300针对任何选择的可配置组件从块308流到块310,并且针对任何选择的不可配置组件从块308流到块322。在各种实施例中,用户可以被使能以经由图形用户界面单独地或并行地配置每个选择的组件。
在块310处,经由图形用户界面向用户呈现用于用户选择的可配置组件的一个或多个用户可选择模板的列表。在一些实施例中,用户可选模板的列表可以包括可以被用户设置或选择的模板的一个或多个特征,诸如如果模板链接到另一模板、组件或项目。
用户可选择模板的列表可以被定制或被限定以利用用户期望的用户界面元件。因此,可以针对不同的用户可选择模板定制用户界面,使得用户可以选择、限定或设置模板的一个或多个特征。在一些实施例中,这种定制可以允许模板使用来自数据库的数据而不是列出所有可能的值。在一些实施例中,该定制可以指定模板的用户可选择的方面。在一些实施例中,用户可以在互斥的模板之间进行选择,其中只有一个模板被选择以用于在针对用户选择的可配置组件的内容生成过程中。
在各种实施例中,块310可以是可选的并且可以不被执行。例如,在一些实施例中,可以默认地应用模板而无需用户的选择。在一些实施例中,在可配置组件的配置中可以不采用模板。
过程300从块310前进到块312,其中针对用户选择模板可配置组件被接收。在一些实施例中,用户选择模板可以包括由用户提供的限定如何使用模板的其它信息。
在一些实施例中,一个或多个可配置组件可以包括用户可选择参数,但不包括用户可选模板。在这样的实施例中,可以不对那些不包括用户可选择模板的所选可配置组件执行块310和312。
过程300从块312继续到块314,其中经由图形用户界面向用户呈现用于用户选择的可配置组件的一个或多个用户可选择参数的列表。在一些实施例中,用户可选择参数的列表可以包括参数和针对这些参数的可能值的列表。在其他实施例中,列表可以标识参数并且包括接收用户限定的值的界面。在其它实施例中,列表可以标识参数并且包括接被限制于某些边界的用户限定值的界面。在一些实施例中,用户可选择参数的列表可以包括参数和针对参数中的一些的可能值的列表,并且包括用于接收具有或不具有边界的其他参数的用户限定值的界面。
可以定制或限定用户可选择参数的列表以利用用户期望的用户界面元件。因此,可以针对不同的用户可选择参数定制用户界面,使得用户可以选择、限定或设置一个或多个参数。在一些实施例中,这种定制可以允许参数选择由来自数据库、表达、公式或来自其它参数的相关性的数据驱动,而不是列出所有可能的值。在其它实施例中,定制可以指定参数的用户可选择方面。在一些实施例中,定制可以指定可应用于参数的用户限定值的边界。在各种实施例中,参数的列表可以是针对其对应的组件的默认列表。
在一些实施例中,用户可选择参数的列表还可以包括可以帮助用户理解选择特定参数的分支的其他信息。例如,图形用户界面可以包括到参考手册、图表、工具提示等的链接,其帮助解释参数以及不同的用户选择可以如何影响其他组件或参数。
过程300从块314前进到块316,其中针对可配置组件接收用户选择参数。在至少一个实施例中,从用户接收一个或多个参数的值。如上所述,用户可以经由图形用户界面从针对参数的可能值的列表中选择特定值。备选地,如果指定了边界,则用户可以根据边界输入参数的特定值。用户输入的不可接受值可以触发用户警告或自动调整(例如,向下舍入到最大值等)。
在一些实施例中,可配置组件可以包括用户可选择模板,但不包括用户可选择参数。在这种实施例中,可以不针对不包括用户可选择参数的选择的可配置组件执行块314和316。
过程300从块316继续到块318,其中基于用户选择参数、用户选择模板或其某种组合来针对选择的可配置组件生成一个或多个设置结构。在一些实施例中,设置结构可以是标识由用户选择参数和由用户选择的关联值、由用户选择模板和选择的模板的任何可定制特征的列表或其它数据结构,或指示可配置组件如何由用户定制的其它信息。
在各种实施例中,可以通过覆盖用于用户选择组件的用户选择的信息来更新设置结构,以覆盖组件的一些值。在一些实施例中,组件可以覆盖来自另一组件的参数,诸如当组件彼此依赖用于计算时。在其它实施例中,组件可以诸如通过改变用户可以作出的与该组件相关联的选择来覆盖来自另一组件的查询。因为一些参数可以被其它模板或组件来设置或限定,所以一些参数值可以基于参数、模板和组件之间的相关性来被传播或覆盖。例如,应用级别值可以覆盖驱动器级别值。以此方式,在应用级别的用户选择和改变可以改变驱动器级别处的值或参数,其然后可以被反映在全局映射或系统注册表中。如上所述,在一些实施例中,可以组合设置结构224和全局映射或设置注册表222。因此,在一些实施例中,块318可以与下一个块320被组合。
过程300从块318前进到块320,其中针对基于每个可配置组件的设置来更新全局映射或设置注册表222。如上所述,全局映射或设置注册表是集中经由用户对可配置组件204、参数和模板的选择而生成的所有用户选择和设置的存储器内对象。因此,由用户针对用户选择的可配置组件选择的参数、模板、值和其它信息基于设置文件被添加、更新或以其它方式被包括在针对项目的全局映射或设置注册表中。全局映射或设置注册表可以被布置为使得用户选择的值是可以由可编程计算设备的驱动器软件直接被写入硬件单元寄存器中的文字。在各种实施例中,全局映射或设置注册表还可以保留被使用以基于用户的选择来更新表达、公式或相关性的结果的任何内容。以此方式,当诸如由用户经由图形用户界面改变的值被更新时,所有相关的值在全局映射或设置注册表中被相应地更新。
尽管图3示出了基于从用户的选择被生成的设置结构来更新全局映射或设置注册表,但是实施例不限于此。在一些实施例中,当用户选择组件、参数或模板时,可以实时更新全局映射或设置注册表。因此,在一些实施例中,设置结构的使用可以是可选的。在一些实施例中,可以在JSON文件中维护用户选择的图像。
在块320之后,或者如果在判定块308处,选择的组件不可配置,则过程300流向块322。在块322处,基于选择的组件和被存储在全局映射或设置注册表222中的信息来生成用于可编程计算设备的内容。注意,存储在全局注册表中并且与其他组件相关的信息可用于生成内容。例如,可以使用与和所选组件相关联的DMA相关的信息(例如,与DMA相关联的模板)来生成与所选组件相关联的内容。
全局映射或设置注册表222可以作为可以被用于从用户选择模板和用户选择组件生成内容的值的合并数据库来操作。该内容可以是例如由可编程计算设备用来初始化、配置或控制可编程计算设备108的软件或硬件方面的明码(例如,C代码)。因此,生成的内容可以是初始化代码、应用代码、配置代码、设备树blob(在运行时解释的硬件描述)等。该内容还可以是初始化、配置或控制可编程计算设备的软件或硬件方面的其它设置、参数或其它信息。该内容还可以包括相关联的文档。
在各种实施例中,覆盖图、操纵柄或类似的模板化或替换引擎可以被用于通过访问存储在全局映射或设置注册表中的值来解析用户选择模板中或可配置组件中的相关性或表达(例如,操纵柄表达)。在其他实施例中,后者所访问的值被存储在包含与设置注册表存储器内对象相同的信息的一个或多个设置文件中。此步骤的结果可以产生可以由编译器编译以用于可编程计算设备中的实际代码。在各种实施例中,代码生成不修改选择的组件的源代码。因此,组件可以以其原始形式被重新用于针对同一项目或其它项目,而不必修改组件。在一些实施例中,系统还可以生成不需要编译的代码,但是代码可以由虚拟机(例如,micro-python,JavaScript)来被解释。在其它实施例中,系统可以生成在运行时间期间被使用的数据结构,以适应可编程计算设备的行为。
如本文描述,图形用户界面允许用户选择组件和值。在其他实施例中,这可以在没有图形用户界面的情况下通过命令行界面来被执行。
在一些实施例中,图形用户界面还可以基于当前选择的参数向用户呈现内容预览。如此,每次参数被设置时都可以触发内容生成。当所有组件被配置时,内容可以针对可编程计算设备最终被生成,因为所有值可与期望的值一起获得(所应用的覆盖,所计算的表达/公式/相关性)。
过程300从块322前进到判定块324,其中确定用户是否要选择另一组件。如果另一组件被选择,则过程300从块324循环到块306以接收对另一组件的用户选择;否则,过程300从块324流到块326。如上描述,过程300还可以由用户选择多个组件来被执行,这些组件然后可以由用户一起或单独地被配置。
在块326处,针对每个用户选择组件被生成的内容被构建到用于项目的二进制图像中。该二进制图像是由可编程计算设备可用于初始化、配置或控制其硬件、软件或其组合的信息。在一些实施例中,所有生成的内容被利用来构建项目的二进制图像。在其它实施例中,利用生成的内容的部分而不是全部来构建项目的二进制图像。例如,在解释语言的情况下,可以仅将特定内容(例如,生成的代码)上载到可编程计算设备的特定存储区域中,而无需重新生成对其进行解释的二进制码。
应当注意,可以调用各种代码生成服务来为用户选择的组件生成内容,并且可以采用代码生成服务的组合来为单个用户选择的组件生成内容。例如,内容可以由默认的C代码生成服务、来自社区的设备树代码生成服务、专有的第三方代码生成服务、生成Python代码或任何其他语言的代码生成服务等生成.,以及其各种组合。
如图所示,过程300从块326前进到块328,其中二进制图像被提供给可编程计算设备。在一些实施例中,过程300有时可以从块326返回到块304,使用在326处生成的内容作为过程的中间输入。在一些实施例中,过程300可以被执行多次以生成用于可编程计算设备的不同配置的不同内容。以此方式,可以向单独的可编程计算设备(即使是相同类型的可编程计算设备)提供不同配置,或可以向单个可编程计算设备提供不同配置以允许可编程计算设备的用户在不同配置之间改变。
在块328之后,过程300终止或以其他方式返回到调用过程以执行其他动作。
图4示出了根据本文描述的实施例的用于在内容生成过程期间更新图形用户界面的过程400的逻辑流程图。
过程400在开始块之后在块402处开始,其中向用户呈现项目的用户界面。项目可以是软件项目、硬件项目或其各种组合。在各种实施例中,该用户界面是上面参考图3描述的向用户显示的图形用户界面。用户界面可以显示可选择用于可编程计算设备的组件,由用户针对特定可配置组件可选择的参数,由用户针对特定可配置组件可选择的模板和其它信息。此外,用户界面可以显示各种参数、设置、模板和组件的值,无论这些值是由用户选择的、从一个模板链接到另一个模板、取决于其它值、还是由可以预定的模板或组件限定的。
过程400从块402前进到块404,其中全局映射或设置注册表值中的改变被接收。如上描述,响应于用户选择的可配置组件、用户选择参数值、用户选择模板等来更新全局映射或设置注册表。这些用户可选择的条件可以指示全局映射或设置注册表值中的改变。
过程400从块404继续到块406,其中改变通过全局映射或设置注册表被传播。因为参数、模板和组件可以依赖于或取决于其它参数、模板、组件或项目的值,所以一个值的改变可以导致另一个值的改变。因此,接收的全局映射或设置注册表值中的改变根据这些相关性通过全局映射或设置注册表被传播。
过程400接下来从块406前进到块408,其中基于全局映射或设置注册表中传播的改变来更新用户界面。用户界面也可以基于生成的内容进行更新。在一些实施例中,用户界面查询全局映射图或设置注册表,并且在更新全局映射或设置注册表时发生的任何改变被获得并且被显示在用户界面中。
过程400接下来在判定块410处继续,其中确定项目是否与另一项目相关联。如果是,则过程400流向块412,其中改变通过全局映射或其它项目的设置注册表被传播。过程400循环到块404以从用户接收对全局映射或设置注册表值的另一改变。
图3中示出的过程300的实施例和图4中示出的过程400的实施例可以具有比示出的更多的过程块、可以具有比示出的更少的过程块,并且过程流程可以以各种方式被修改。例如,过程300可以被修改以包括在320处基于更新的全局映射或设置注册表向用户呈现配置更新信息的块(例如,调用过程400)。
图5是根据本文描述的实施例的组件参数文件的说明性示例。在该示例中,组件参数标识可以由用户连同可能值一起被选择的参数的各种不同特性。例如,参数“DCH1”指定由用户可选择的用于通道1定时器的占空比。在示例中,诸如用于在图形用户界面中向用户显示的标签是“DutyCycleCH1”。参数的类型是数字。因此,由用户选择的值是数字。用户可以选择的最小值是零,而用户可以选择的最大值是100。最后,参数指示用于参数的单位是百分比。
图6是根据本文描述的实施例的针对从图5的组件参数文件获得或重新使用参数值的应用级别组件的参数文件的说明性示例。定时器HAL驱动器的值与根据应用级别参数计算的值被重叠(例如,从应用频率计算定时器周期)。在该示例中,模板建立了LED调光器,其特性从图5所示的参数被获得。例如,特征的“源”是从“来自图5.json的参数”获得的,这是取决于图5中的参数值的说明性示例。模板将通道1定时器限定为“CH1”。该定时器的脉冲被设置为“(self.resources.pwm_led_dimmer.blocks.configs.%current_config%.fields.DCH1*%this%.Period)/100”。如上所述,该定义依赖于“DCH1”,其是参数中限定的通道1定时器。“this”是当前“object”或JSON对象中的当前级别。在该特定示例中,“this”是“fields”阶段,而“this.%Period%”是指当前对象级别的Period字段。
图5和6是用于说明的目的,而不应被认为是限制性的。根据本文描述的实施例,其它信息、数据结构和覆盖或操纵柄技术可以被使用以针对从被用户选择组件、模板和参数建立可编程计算设备的内容。
图7是根据本文描述的实施例的使能用户针对项目以选择组件的图形用户界面700的说明性示例。在说明性示例中,图形用户界面700可以显示组件的“样本连接”集合:“中间件USB”、“中间件BT”和“驱动器Wi-Fi”。在该示例中,样本连接是具有三个相关性的应用代码组件:两个中间件部件和一个驱动器部件。针对该示例情况,组件被要求具有完整的项目。在该示例中,用户可以选择组件中的哪一个来打开用于选择的其它组件。例如,用户可以选择“中间件BT”,其允许用户随后选择“驱动器BT”或“驱动器公共”。这种类型的用户界面可以使能用户以通过各种不同的组件层来针对其项目选择适当的组件。此外,图形用户界面工具可以通过建议适当的组件或通过在适当时(例如,当仅一个组件填充标准时)自动地选择组件来帮助最终用户解决相关性。
图8是根据本文描述的实施例的使能用户针对用户选择组件选择参数的图形用户界面800的说明性示例。图形用户界面800可以显示不同的配置和用于多个参数的可能值,这取决于由用户选择了哪些可配置组件。
图7和8是用于说明的目的,而不应被认为是限制性的。根据本文描述的实施例,可以经由图形用户界面向用户显示其他信息或数据。
参考图1和2,可编程计算设备108可以包括微控制器(MCU)或微处理器(MPU),其可以包括一个或多个SoC。SoC可以包括一个或多个处理器,并且处理器可以具有一个或多个处理核。参见图1的处理器110a、110b以及处理核114a至114n和114x。处理器的处理核可以包括例如CPU、浮点单元等。处理核需要被配置,包括配置启动可编程计算设备108的过程,其可以被称为可编程计算设备108的引导序列。
在配置SoC的引导过程中,存在可能需要考虑的若干因素。SoC可以具有若干处理器,并且每个处理器可以具有若干核,诸如上文参看图1所描述的。核可以采用虚拟化,诸如ARM信托域技术中的可信/不可信世界。SoC可以被组织成可信世界和不可信世界(例如,在执行上下文中,可信世界中的处理器核可能能够利用其所属的可信世界中的资源,而资源将不可用于可信世界之外的处理核)。SoC的硬件执行单元或电路可以是给定硬件平台的核内的核或虚拟化容器(诸如可信世界),并且可以执行二进制程序。二进制程序可以具有与软件项目的执行上下文的关联。如果处理器具有多个核,则核中的一些核可以以同步的方式工作,并且可以被视为形成单个硬件执行单元。
执行域可以被视为聚集了可以专门被用于实现软件项目的硬件执行单元和平台资源(例如,内部和外部存储器、外围设备等)的容器。共享域可以被视为共享硬件平台资源的容器,可用于若干执行域。
执行域可以容纳一个或多个执行上下文,即用于诸如二进制程序或解释的代码的软件项目交付的容器。相同执行域上的这种执行上下文可以顺序地或互补地发生。
应用项目可以被视为聚集在给定硬件平台上运行应用所需的所有执行上下文及其相关联的软件项目的容器。
因此,执行上下文与硬件执行单元相关联。例如,每个引导序列执行上下文被链接到保存用于在引导序列的执行中涉及的硬件执行电路的同步的资源的执行域。每个执行上下文还托管包含用于实现引导序列的软件组件的软件项目,其可以以各种方式同步。
在引导序列中,每个硬件执行单元(例如,核或信任区世界或虚拟化容器)可以具有限定的角色。核可以是引导的第一核,并且可以被指定为主核,并且可以负责启动可以被指定为从核的(多个)其他核。例如,参考图1,核114x可以是第一引导,并且可以控制或启动针对核114a到114n的引导过程。主核可以顺序地(使用呼叫来启动从核)或与选通并行地启动其它或从核。从设备可以具有与主设备的同步点。在一些实施例中,多个核可以同时启动并等待彼此就绪,而多个核没有被配置为主核或从核。
SoC可以具有一组配置引脚(见图1的配置引脚118),其状态在引导时间处被采样或被读取作为配置SoC的一部分,以及存储在非易失性存储器(见图1的存储器116)中的选项字节(见图1的选项字节117),其值在引导时间处被采样或被读取作为配置SoC的过程的一部分。选项字节可以被存储在存储器的安全区域中,诸如可以变得不可变的闪存区域(例如,一次写入闪存)、与信任区相关联的存储器区域、熔丝等。
因此,例如,引导配置可以限定启动执行上下文、引导地址,无论选通是否被采用,以及针对运行在相同或另一硬件执行单元上的每个执行上下文待采用的任何同步机制。例如,简单的引导配置可能仅涉及一个核,因此可能不需要采用任何同步机制。涉及若干核的引导配置将具有若干执行上下文,并且每个核将需要具有限定的引导上下文。还需要考虑配置与引导引脚设置(例如,图1的配置引脚118)和选项字节的兼容性。常规上,用户必须非常仔细地研究针对可编程计算设备的手册,以便配置可配置计算设备(诸如图1的可配置计算设备108)的引导序列和涉及的硬件执行单元。
现在将参照图9和10描述一个或多个实施例的操作,并且为了方便将参照上述图1至8的实施例进行描述。在各种实施例的至少一个实施例中,分别结合图9和10描述的过程900和1000可以由一个或多个计算设备实现或在一个或多个计算设备上执行,诸如图1中的主计算设备150执行指令,诸如被存储在存储器156中的指令226(见图2)。
图9示出了根据本文描述的一些实施例的用于生成内容的过程900的逻辑流程图。过程900在开始块之后、在块902处开始,在块902处项目被发起用于生成内容以在诸如图1中的可编程计算设备108等可编程计算设备上实现或配置该可编程计算设备。在一些实施例中,项目启动包括向用户呈现图形用户界面。图形用户界面请求或包括针对用户以选择特定可编程计算设备的输入界面。针对项目的全局映射或设置注册表也被启动。全局映射或设置注册表可以包括可被预定的限定的结构,或用于特定可编程计算设备的初始设置。
如上参考图3所述,在一些实施例中,用于软件和硬件的单个项目针对可编程计算设备被启动。如此,单个全局映射或设置注册表可以被生成。在其它实施例中,第一项目可以针对可编程计算设备的软件被启动,并且第二项目可以针对可编程计算设备的硬件被启动。然后可以针对单独的项目生成单独的全局地图或设置注册表。在作为系统级别问题的引导序列配置的上下文中,引导序列设置被保持在总项目级别,其可以被称为应用项目。因此,也可以修改用于各个项目的专用全局映射或设置注册表,以反映对引导序列配置的改变。
过程900从块902前进到块904,其中过程900呈现配置选项和信息并且使用用户界面从用户获得配置信息来配置引导序列,诸如多个硬件执行单元之间的同步机制、限定各个执行单元的(多个)执行上下文等。这可以例如通过使用或调用图10的过程1000来被完成,下面将更详细地讨论。由用户界面呈现的信息可以包括可用的处理核和引导序列选项(其可采取模板、参数或模板和参数的形式)、配置引脚的可用或当前设置、被存储在存储器中的配置选项字节的可用或当前值(其可采取模板、参数或模板和参数的形式)、信任区选项(其可采取模板、参数或模板和参数的形式)等。用户可以使用用户界面在呈现的选项中进行选择或直接输入设置信息(例如,选项字节)。
引导序列限定哪些执行上下文被其它执行上下文触发,因此这些是呈现给用户用于选择的对象。可用同步机制可以受执行上下文下方的底层硬件执行单元或域约束。例如,仅具有一个硬件执行单元的简单单核MCU可以具有两个限定的执行上下文:引导加载程序和产品应用。引导序列可以被限定为引导加载程序首先被启动,并且产品应用被引导加载程序启动,从而相同硬件执行单元的顺序时间共享被采用。
过程900从块904前进到块906,其中过程900呈现配置选项和信息并且从用户获得配置信息以使用用户界面来配置执行域。这可以例如使用与图3的过程300类似的过程(例如,上面更详细讨论的块304至324)来被完成。由用户界面呈现的信息可以包括选择的处理核或其它硬件执行单元的可用配置选项、相关配置引脚的可用或当前设置(其可以被约束为与块904处配置的引导序列一致)、被存储在存储器中的相关配置选项字节的可用或当前值、申请人信任区信息(例如,信任世界中的组件)等。信息和选择可以采用模板、参数或其各种组合。用户可以使用用户界面在呈现的选项中进行选择或直接输入设置信息(例如,选项字节)。
过程900从块906前进到块908,其中过程900呈现配置选项和信息并且从用户获得配置信息以配置与执行域相关联的软件项目的可配置组件。这可以例如使用上面更详细讨论的图3和4的过程300和400来被完成。例如,过程300的块304至324可以被执行以配置与硬件执行域相关联的可配置硬件和软件组件。
过程900从块908前进到判定块910,在判定块910处确定用户是否要选择与用于配置的项目相关联的另一执行域。如果选择了另一执行域,则过程900从块910循环至块906以配置下一个执行域;否则,过程900从块910流到块912。
在块912,为所涉及的软件项目生成的内容被构建到二进制图像中,例如,每个软件项目一个二进制图像。在块912处,针对涉及的软件项目生成的内容被构建成二进制图像,例如每个软件项目一个二进制图像。二进制图像是可编程计算设备可用于初始化、配置或控制其硬件、软件或其组合的信息。在一些实施例中,所有生成的内容被利用以构建针对软件项目的二进制映像。在其它实施例中,所生成的内容的一部分而不是全部被用来构建软件项目的二进制映像。例如,在解释语言的情况下,可以仅将特定内容(例如,生成的代码)上载到可编程计算设备的特定存储区域中,而无需重新生成对其进行解释的二进制码。
注意,内容不限于构建到二进制图像中的内容。可以生成的其他内容示例包括包含要应用的对象的配置的文件(例如,由编程工具解释的一组值或一组命令)、向用户解释其他配置细节的文档或显示(例如,如何配置引导引脚,如何更改焊桥等),通用文档,例如引导顺序图等,以及其各种组合。
如图所示,过程900从块912前进到块914,其中二进制图像被提供给可编程计算设备。在一些实施例中,过程900可以被执行多次以生成用于可编程计算设备的不同配置的不同内容、或不同类型的内容(例如,二进制代码、解释性文档等)。以此方式,除了生成不同类型的内容外,可以向单独的可编程计算设备(即使是相同类型的可编程计算设备)提供不同配置,或可以向单个可编程计算设备提供不同配置以允许可编程计算设备的用户在不同配置之间改变。在块914之后,过程900终止或以其它方式返回到调用过程以执行其它动作。
图9中示出的过程900的实施例可以具有比示出的更多的过程块、可以具有比示出的更少的过程块,并且过程流程可以各种方式被修改。例如,过程900可以被修改为并行地而不是顺序地配置多个硬件执行单元,以除了在912处生成代码之外或者替代在912处生成代码,在912处触发代码生成之前添加判定块来配置附加的元件,以生成解释引导序列的报告或文档,以包括错误处理,诸如向用户通知不兼容或不一致的用户选择,以组合块904和906,以省略块914等。
图10示出了根据本文描述的一些实施例的用于生成与配置SoC的引导序列相关联的内容的过程1000的逻辑流程图。例如,过程1000可以被采用以配置图1的可编程计算设备108的引导序列。过程1000可以由另一过程调用,诸如由块904处的过程900调用。
在开始块之后,过程1000前进到块1002,其中过程1000使用用户界面呈现当前配置引脚设置以及可选地呈现配置引脚选项的列表。过程1000可以读取或检索可编程计算设备的配置引脚设置,并且使用用户界面显示设置。显示还可以包括取决于配置引脚设置或当前配置引脚设置的分支的其它信息。例如,配置引脚设置可以限定可用的引导序列选项或兼容的选项字节值,并且该信息可以与当前配置引脚设置一起被显示。还可以呈现关于配置引脚设置的潜在改变的信息。例如,配置引脚设置可以控制特定处理核是否可以充当另一处理核的主控器,并且用户界面可以显示启用或停用此功能性的设置的指示,以及如何改变引脚设置。在另一示例中,可以呈现关于对配置引脚设置的任何约束的信息,诸如特定引脚未被连接在选择的板上的信息。示例用户界面1100在图11中被示出并且在下面更详细地被讨论。
过程1000从块1002前进到确定块1004,其中过程1000确定配置引脚设置是否已经改变。例如,用户界面可以允许用户在手动改变引脚设置之后选择或提供配置引脚设置已经被复位的指示。在一些实施例中,过程1000可周期性地或响应于用户选择(例如,选项字节值或引导序列选项的选择)来读取或检索配置引脚设置,以例如确认配置引脚设置与用户选择兼容或未改变。当确定配置引脚设置已经改变或被复位时,过程1000从块1004循环到块1002以更新呈现的配置引脚设置、选项和相关信息。当在1004处未确定配置引脚设置已被改变或复位时,过程从块1004前进到块1006。
在块1006处,过程1000呈现当前选项字节值或设置,并且可选地呈现选项字节选项的列表或其中可以使用用户界面来输入选项字节值的字段(例如,可以向用户呈现模板、参数或模板和参数以供选择)。过程1000可以读取或检索可编程计算设备的选项字节值(例如,默认值),并且使用用户界面显示值。显示还可以包括依赖于选项字节值的其它信息,以显示当前选项字节值的分歧及其可能的改变。例如,选项字节值可以限定可用的引导序列选项或兼容的配置引脚设置,并且该信息可以与当前的选项字节值一起被显示。关于选项字节值的改变的信息还可以被呈现。例如,选项字节值可以限定可用于处理核或与处理核相关联的信任区的资源,并且用户界面可以显示选项字节值如何影响此功能性的指示。示例用户界面1100在图11中被示出并且在下面更详细地被讨论。
过程1000从块1006前进到块1008,其中过程1000接收用户选择的选项字节值。例如,用户可以从针对选项字节的值的列表中选择选项字节值、针对一组选项字节选择一组选项字节值、输入选项字节值以及其各种组合。
过程从块1008前进到判定块1010,其中过程1000确定选项字节模板或参数值是否已经改变。例如,用户界面可以检测不同选项字节值的选择或输入。在一些实施例中,过程1000可以响应于另一用户选择(例如,选择与当前选项字节选择不兼容的引导序列选项、修改与所选选项字节值不一致的配置引脚设置等)来读取、检索或修改选项字节设置。当确定选项字节选择或值已经改变时,过程1000从块1010循环到块1006以更新呈现的选项字节值、选项和相关信息。当在1010处没有确定选项字节值已经改变时,过程从块1010前进到块1012。
在块1012处,过程1000呈现引导序列选项的列表。呈现的引导序列选项的列表可以由当前配置引脚设置和选择的选项字节值来限定,或可以包括在被选择时修改或指示用户以修改选择的选项字节值、指示用户修改当前配置引脚设置或其各种组合的选项。显示还可以包括依赖于选择的引导序列选项的其它信息,以显示各种引导序列选项的分支。例如,特定引导序列选项可以限定在执行上下文中可用的资源、限制信任区等。
关于对选择的引导序列选项的改变的信息还可以被呈现。例如,选择的引导序列选项可以限定可用于处理核或与处理核相关联的信任区的资源,并且用户界面可以显示引导序列选项如何影响此功能性的指示。
呈现引导序列选项可以包括呈现子选项和配置选择。例如,将特定处理核设置为主处理核的引导序列选项可以包括子选项或选择,以选择主处理核是顺序地还是并行地启动从处理核,以从可用的同步协议和资源中显示和选择。在一些实施例中,选择同步协议可以自动地选择要被采用的同步资源。例如,可以自动地选择用于处理硬件信号量的驱动器或用于处理核到核通信的非对称多处理应用。在另一示例中,可以呈现在硬件执行单元的执行上下文中引入软件组件的选项。
如上所述,示例用户界面1100在图11中被示出并且在下面更详细地被讨论。
过程1000从块1012前进到块1014,其中过程1000接收用户选择的引导序列选项和任何子选项或选择。在至少一个实施例中,用户可以经由图形用户界面从呈现的列表中选择引导序列选项和任何子选项或选择。
过程1000从块1014前进到块1016,其中过程1000更新设置结构、全局映射或设置注册表,或两者。这可以包括任何受影响项目的任何全局映射或设置注册表以及引导序列配置的系统级全局映射或设置注册表。例如,如以上参考图3的过程300的块318和320所讨论的,可以完成设置结构和全局映射或设置注册表的更新。在块1016之后,过程1000返回到调用过程(例如,过程900)以执行其它动作或终止。
图10中示出的过程1000的实施例可以具有比示出的更多的过程块,可以具有比示出的更少的过程块,并且过程流程可以各种方式修改。例如,过程1000可以被修改成执行与配置引脚设置相关联的块1002至1004、与选项字节选项和值相关联的块1006至1010、以及与引导序列选项相关联的块1012至1014,这些块以各种顺序或并行(而不是以所示出的顺序)可以被修改以呈现选项字节设置同时限制或禁止对选项字节值的改变,可以被修改以包括错误处理块,诸如向用户通知不兼容或不一致的用户选择的块等。
图11是根据本文描述的实施例的图形用户界面1100的说明性示例,该图形用户界面1100使能用户针对可编程计算设备的引导序列选择模板和参数。该图形用户界面1100可以根据可编程计算设备的配置(诸如配置引脚设置和选项字节状态)来显示多个模板、参数和引导序列选项的不同配置和可能值。如图所示,基于当前配置引脚设置,呈现了三个引导序列选项,CM7作为主核并且CM4作为从核、CM4作为主核并且CM7作为从核、以及CM7和CM4并行引导。一些实施例可以呈现更多或更少的引导序列选项。如图所示,用户已经选择了CM7和CM4的并行引导。
在选择的引导序列选项中,用户可以选择同步协议,其可以包括不同步、可选地从模板中选择同步代码、或者例如当硬件执行单元被配置或可配置组件被配置时指示将提供定制同步代码。可以采用下拉菜单或弹出菜单来允许用户进行选择或输入配置信息。例如,当用户指示要从一组模板中选择代码时,可以出现弹出菜单。用户还可以选择或输入与核相关联的引导地址和执行上下文。例如,每个核可以被分配给不同的软件项目或执行上下文。示出的用户界面还包括SRAM加载选择器,其可以允许用户分配给主RAM(例如,内部或外部SRAM)以从闪存加载从代码以供从器件执行、主器件的数据配置选择器为从设备设置数据段和堆栈指针等。
采用诸如图11的用户界面1100等用户界面的过程(例如图10的过程1000)可以包括在由用户作出选择时的检查。例如,如果用户选择与当前配置引脚设置或选项字节值不一致,则可以提示用户手动地修改配置引脚设置或修改选项字节,或者可以基于选择来改变选项字节选择。在另一示例中,可以仅呈现兼容的引导配置选择,或者备选地,在进行引导配置选择之后,可以仅呈现兼容的选项字节值用于选择。
图11是为了说明的目的而不应被认为是限制性的。根据本文描述的实施例,可以经由图形用户界面向用户显示其他信息或数据。此外,过程1000和用户界面1100可以被采用以配置具有多于两个核、多于一个芯片上系统(例如,具有多个SoC的板)等的可编程计算设备。这种计算设备可以被配置为具有相应的从设备等多个主设备。
诸如可编程SoC的可编程计算设备正变得更加复杂,并且常常利用不同的软件可配置外围设备或组件。例如,SoC可以具有许多多个内部外围设备(例如,定时器、UART、I2C、SPI等)和多个外部外围设备(例如,专用或通用输入/输出界面),诸如以上参考图1所描述的。外围设备或组件的配置可以在软件级别处、硬件级别处或其各种组合上被控制。然而,一个这种外围设备的配置通常依赖于其他外围设备的配置,用户可能知道或可能不知道这些外围设备并且可能已经被用于另一个外围设备。这种复杂性使得配置耗时、易于出错,并且可能导致某些外围设备的重复或不正确使用。
用于利用图形用户界面的计算机架构和方法,诸如以上关于图1-11所描述的,可以被布置以使能用户选择一个或多个SoC外围设备的特定参数并且生成设置代码和其他内容以根据用户选择的外围设备和参数来配置SoC。代码和内容还可以包括帮助用户根据期望的配置对SoC进行任何物理改变的指令(例如跳线设置指令,诸如将UART配置为具有在GPIO A0上的RX引脚和在GPIO A1上的TX引脚的115200波特、焊盘到连接信息等)。
图12A和12B(统称为图12)示出了根据本文描述的实施例的图形用户界面1200的示例,该图形用户界面1200使能用户以选择和配置可编程计算设备的外围设备。为方便起见,将参考图1-8描述图12A和12B。图形用户界面1200可以在概念层中显示不同的外围设备和GPIO,并且便于外围设备的用户配置和层的外围设备的节点之间的连接。在图12中,图形用户界面1200将一组内部外围设备的能力表示或呈现为包括实例层1210、GPIO层1230和封装引脚层1250的树1202,以及这些层之间的可能耦合和连接。为了便于说明,在图12的用户界面1200中示出了三层。图形用户界面1200可以具有多于三层、或少于三层,这取决于例如可编程计算设备的复杂性、或与图形用户界面1200相关联的配置项目。
实例层1210包括多个外围设备1212、如图所示为定时器或时钟TIM1、模数转换器ADC、GPIO界面GPIOA、I2C界面I2C3和第二GPIO界面GPIOB。例如,图1的处理核114a的内部外围设备132和GPIO 134可以被表示为图12的用户界面1200的实例层1210的外围设备1212。类似地,处理器110a的内部外围设备132和GPIO 134可以被表示为图12的用户界面1200的实例层1210的外围设备1212。在另一示例中,可以在一个或多个实例层中呈现多个SoC 109的相关内部外围设备132和GPIO 134。与特定配置项目无关(例如,不可用于在项目上下文中)的内部外围设备132可以从用户界面1200的呈现中被省略。
GPIO层1230包括多个节点1232,如示出的GPIO的节点PA0、PB1和PA2。例如,图1的处理器110a的GPIO 134可以被表示为图12的用户界面1200的GPIO层1230。类似地,图1的可编程计算设备108的GPIO 134可以被表示为图12的用户界面1200的GPIO层1230。在另一示例中,多个SoC 109的多个GPIO 134可以被呈现在一个或多个GPIO层中。
用户界面1200示出了实例层1210的外围设备1212与GPIO层1230的节点1232之间的可能的信号耦合1220。实例层1210与GPIO层1230之间的信号耦合可以由软件(例如,控制开关、控制多路复用器、控制信号时序等及其各种组合)、存储器中的设置(例如,设置文件224、选项字节117)、配置引脚等来控制。为了便于说明,图12中信号耦合1212被示出为单向信号耦合以将信号从一组外围设备中的外围设备1212传输到多个节点中的节点1232。实施例可以包括双向信号耦合和单向信号耦合,以将信号从多个节点中的节点1232传输到一组外围设备中的外围设备1212,以及其各种组合。
当用户做出选择时,当系统150执行选择检查(例如,软件一致性检查、电行为检查等)时,可以实时或以其他方式更新可能的信号耦合1220的表示。这可以例如基于全局映射或设置注册表222、设置文件224或其它临时选择指示符(例如,在完成配置项目和更新全局映射或设置注册表222之前)、存储的关于可编程计算设备及其组件的特性的信息等及其各种组合来被完成。
在图12A中,信号耦合1220被示出为虚线以指示所有当前信号耦合可用于选择。例如,图12A可以示出在内部外围设备配置过程开始时的用户界面1200。
在图12B中,已被选择的示例信号耦合1220被示出为实线,保持可用的信号耦合1220被示出为具有统一长度的短划线的虚线,并且不可用的信号耦合1220(例如,作为另一信号耦合或配置选择的结果)被示出为变化长度的短划线。例如,图12B可以示出在内部外围设备配置过程的开始阶段处、中间阶段处或最后阶段处的用户界面1200。
在图12B的示例中,外围设备1212ADC和焊盘1232PA0之间的信号耦合1220被示出为被选择,实例层1210的其它外围设备1212和焊盘1232PAO之间的信号耦合1220被示出为不可用,实例层1210的其它外围设备1212和焊盘1232PB1之间的信号耦合1220被示出为可用,并且外围设备1212GPIOA和焊盘1232PA2之间的信号耦合1220被示出为被选择。
可以采用示出信号耦合1220是被选择、可用还是不可用的其他方法(例如,不同的颜色),并且可以指示耦合可用性的附加指示或更少的指示(例如,可以指示定时限制,可以省略不可用的信号耦合等),并且指示可以随着不同外围设备被选择用于配置而改变(例如,当定时器TIM1被选择用于配置时,可以显示与定时器TIM1相关联的信号耦合1220,而其他信号耦合不由用户界面1200显示或以阴影显示)。
在图12中,GPIOA在内部外围设备1212中被表示两次,以便于指示GPIOA的附加信号耦合能力(例如,耦合到PA0或PA2)。例如,PA0可以被耦合到GPIOA作为输入,而同时PA2被耦合到GPIOA作为输出。两次呈现GPIOA使得呈现更清楚。
如图所示的图形用户界面1200的引脚层1250包括多个引脚1252,如示出的引脚1和4,其便于将可编程计算设备耦合到外部设备,诸如外部外围设备(例如,界面、控制器等,未示出)。例如,与配置项目有关的图1的可编程计算设备108的输入/输出界面112的引脚可以被表示为图12的用户界面1200的引脚层1250的引脚1252。类似地,SoC 109的输入-输出界面112的引脚可以被表示为图12的用户界面1200的引脚层1250的引脚1252。在另一示例中,可编程计算设备108和一个或多个SoC 109的相关引脚1252可以被呈现在一个或多个引脚层中。
用户界面1200示出了在GPIO层1230的焊盘1232和引脚层1250的引脚1252之间的可能的连接或键合1240。在GPIO层1230与引脚层1250之间的连接或键合1240通常可以由配置引脚控制或可以是物理键合等。在一些情况下,连接或键合1240可以由软件或配置引脚、物理键合和软件的各种组合控制。
为了便于说明,在图12中将连接或键合1240示出为单向信号耦合,以将信号从多个节点的GPIO节点1232传输到引脚层1250的多个引脚的焊盘1252。实施例可以包括双向连接或键合和单向连接或键合及其各种组合。
当用户作出选择时,当系统150执行选择检查(例如,软件一致性检查,电行为检查等)时,可能的连接或键合1240的表示可以实时或以其他方式被更新。这可以例如基于全局映射或设置注册表222、设置文件224或其他临时选择指示符(例如,在完成配置项目和更新全局映射或设置注册表之前)、存储的关于可编程计算设备及其组件的特性的信息等、以及其各种组合来被完成。
在图12A中,所有连接或键合1240被示出为虚线以指示连接或键合1240可用于选择。在图12B中,已被选择的示例连接或键合1240被示出为实线,保持可用的示例连接或键合1240被示出为具有统一长度的短划线的虚线,而不可用的连接或键合1240(例如,作为另一耦合、连接或配置选择的结果)被示出为变化长度的短划线。如图12B所示,焊盘1232PAO和引脚1252 1之间的连接或键合1240被示出为被选择,焊盘1232PB1和引脚1252 1之间的连接或键合1240被示出为可用,焊盘1232PB1和引脚12524之间的连接或键合被示出为不可用,焊盘1232和引脚1252 4之间的连接被示出为已连接。在图12B所说明的配置中,内部外围设备1212ADC通过焊盘1232PA0被耦合到引脚1252 1(例如,以便于由ADC测量在SoC的引脚1中接收的信号),并且同时内部外围设备1212GPIOA通过焊盘1232PA2被耦合到引脚12524(例如,以便于GPIOA相对于与引脚4相对应的焊盘PA2上的信号以输入或输出模式操作)。
可以采用示出连接1240是被选择、可用还是不可用的其他方法(例如,不同的颜色),并且可以指示耦合可用性的附加的或更少的指示(例如,可以指示定时限制、可以省略不可用的信号耦合等),并且指示可以随着不同的外围设备被选择用于配置而改变(例如,当定时器TIM1被选择用于配置时,可以显示与定时器TIM1的配置相关联的连接或键合1240,而其他连接或键合1240不由用户界面1200显示),随着不同的配置项目被执行等。
图12B示出了选择的信号耦合1220和连接或键合1240的例子,但不限于此。可以采用其它信号耦合(未示出)。例如,在一个实施例中,可以选择内部外围设备1212定时器TIM1和焊盘1232PA0之间的信号耦合1220,并且可以选择内部外围设备1212ADC之间的信号耦合1220,例如,以向ADC(未示出)提供由定时器TIM1生成的时钟信号,并且可以选择在焊盘1232PA0之间的连接或接合1240,以使时钟信号可用于外部设备。
现在将参照图13描述一个或多个实施例的操作,并且为了方便,将参照上述图1至8和12的实施例进行描述。在各种实施例的至少一个实施例中,参考图13描述的过程1300可以由一个或多个计算设备被实现或在其上被执行,诸如图1中的主计算设备150执行指令,诸如被存储在存储器156中的指令226(见图2)。
图13示出了根据本文描述的一些实施例的用于生成内容的过程1300的逻辑流程图。过程1300在开始块之后、在块1302处开始,其中发起用于生成内容以在诸如图1中的可编程计算设备108、SoC 109等可编程计算设备上实现或配置可编程计算设备的项目。在一些实施例中,项目启动包括向用户呈现图形用户界面。图形用户界面请求或包括针对用户以选择特定可编程计算设备的输入界面。可以启动或检索针对项目的全局映射或设置注册表。全局映射或设置注册表可以包括可被预定的限定结构、或用于特定可编程计算设备的初始设置。
如上参考图3所描述的,在一些实施例中,针对可编程计算设备启动用于软件和硬件的单个项目。如此,可以生成单个全局映射或设置注册表。在其它实施例中,可以针对可编程计算设备的软件启动第一项目,并且可以针对可编程计算设备的硬件启动第二项目。然后可以针对单独的项目生成单独的全局映射或设置注册表。
过程1300从块1302前进到块1304,其中过程1300呈现配置选项和信息并且从用户获得配置信息以配置一个或多个内部外围设备,诸如内部外围设备的配置设置(参见图7和8)、在实例层的一个或多个内部外围设备与GPIO层的焊盘之间的信号耦合(参见图12A和12B)、在GPIO层的一个或多个焊盘与引脚层的一个或多个引脚之间的连接(参见图12A和12B)等,及其各种组合。这可以例如通过使用或调用图3的过程300(例如,以上讨论的块304至320)来被完成。由用户界面呈现的信息可以采取模板、参数或模板和参数的形式,例如如上参考图1-8描述,以及呈现信号耦合和连接,例如如上参考图12A和12B描述。多个用户界面可以被采用。用户可以使用用户界面在呈现的选项中进行选择或直接输入设置信息。
例如,参考图12,用户可以通过选择用户界面1200中的定时器TIM1的表示来选择内部外围设备1212(例如,时钟或定时器TIM1)中的一个内部外围设备用于配置。可以呈现设置定时器参数的选项,并且可以调用图3的过程300来设置定时器参数。用户可以选择在定时器TIM1和可用焊盘之间的信号耦合(如图12A所示,焊盘1232PA0可用于与TIM1相关联的选择),以及焊盘和引脚之间的连接(如图12所示,在焊盘PA0和引脚1之间的连接可用于选择)。在一些实施例中,用户可以选择与外围设备的信号相关联的引脚,并且过程1300可以选择适当的耦合和连接以将外围设备信号配置为与选择的引脚相关联。
过程1300从块1304前进到块1306,其中过程1300执行软件一致性检查、电行为检查等。这可以例如基于全局映射或设置注册表222、设置文件224或其它临时选择指示符、存储的关于可编程计算设备及其组件(例如,内部外围设备)的特性的信息等、以及其各种组合来被完成。下面在图14和15的描述中讨论一致性和电行为检查的示例。
过程1300从块1306前进到块1308,在其中确定软件一致性和电检查是否已经通过。当在块1308处确定一致性和电检查已通过时,过程1300从块1308前进到块1310。
在块1310处,确定用户是否要选择另一内部外围设备用于配置。如果要选择另一内部外围设备,则过程1300从块1310循环到块1304以选择并且配置下一个内部外围设备,否则,过程1300从块1310流到块1312。
在块1312处,针对内部外围设备生成的内容被构建成例如二进制图像。二进制图像是可编程计算设备可用于初始化、配置或控制其硬件、软件或其组合的信息。在一些实施例中,所有生成的内容被利用以构建用于项目的二进制图像。在其它实施例中,生成的内容的一部分而不是全部被利用以构建用于项目的二进制图像。例如,在焊盘和引脚之间的连接或键合的情况下,可以生成便于进行连接或键合的指令。
过程1300从块1312前进到块1314,其中二进制图像被提供给可编程计算设备。在一些实施例中,过程1300可以被执行多次以生成用于可编程计算设备的不同配置的不同内容。以此方式,可以向单独的可编程计算设备(即使是相同类型的可编程计算设备)提供不同配置,或可以向单个可编程计算设备提供不同配置以允许可编程计算设备的用户在不同配置之间改变。在块1314之后,过程1300终止或以其他方式返回到调用过程以执行其他动作。
当在块1308处未确定一致性和电检查已经通过时,过程1300从块1308前进到块1316,其中配置错误处理被执行,诸如向用户提供关于故障或一致性或电检查的信息(例如,标识引起故障的冲突的性质、与冲突相关的其它组件或内部外围设备等),呈现用于解决故障的选项(例如,返回到块1304以重新配置内部外围设备、重新配置另一组件或内部外围设备等)。
图13中示出的过程1300的实施例可以具有比示出的更多的过程块、可以具有比示出的更少的过程块,并且过程流程可以以各种方式被修改。例如,过程1300可以被修改为并行地而不是顺序地配置多个内部外围设备、以代替在1312处生成代码或除了在1312处生成代码之外,在1312处触发代码生成之前添加判定块来配置附加元件、生成解释内部外围设备配置(例如,引脚设置、信号连接的示意图等)的报告或文档、以包括附加错误处理,诸如向用户通知不兼容或不一致的用户选择、组合块1304和1306、省略块1314等。
图14是示出根据实施例的信号耦合一致性检查的概念图。在左边,参考图14的取向,ADC1的模拟信号输入和焊盘PA0之间的信号耦合被选择。此外,ADC2的模拟信号输入和焊盘PA0之间的信号耦合被选择。焊盘PA0以及ADC1和ADC2的相关配置被检查。相关配置信息(例如,在设置注册表222中)指示过采样被允许,并且一致性检查被通过。
在右边,再次参考图14的方向,输出模式中的内部外围设备GPIOA和焊盘PA0之间的信号耦合被选择,以及替换功能模式中的界面I2C1和焊盘PA0之间的信号耦合被选择。焊盘PA0、GPIOA和IcC1的相关配置被检查。相关配置信息(例如,在设置注册表222中)指示PA0不能配置为同时在输出模式和备选模式中被操作,因此一致性检查不被通过。参考图13,过程1300在块1308处检测相干性检查失败,并且前进到块1316,其中可能发生错误处理。
图15是示出根据实施例的电完整性检查的概念图。在左边,参考图15的方向,在ADC的模拟信号输入和焊盘PA0之间的信号耦合被选择。此外,DAC的模拟信号输出和焊盘PB1之间的信号耦合被选择。焊盘PA0和PB1两者都被选择为具有到引脚层的引脚1的连接或键合。检查ADC、DAC、焊盘PA0和PB1以及引脚1的相关配置。相关配置信息(例如,在设置注册表222中)指示不存在电风险,并且通过电完整性检查。
在右边,再次参考图15的方向,在输出模式中的内部外围GPIOA和焊盘PA0之间的信号耦合被选择,以及输出模式中的GPIOB和焊盘PB1之间的信号耦合被选择。焊盘PA0和PB1两者都被选择为具有到引脚层的引脚1的连接或键合。GPIOA、GPIOB、焊盘PA0和PB1以及引脚1的相关配置被检查。相关配置信息(例如,在设置注册表222中)指示存在电风险,并且未通过电完整性检查。参考图13,过程1300在块1308处检测电完整性检查故障,并且前进到块1316,其中可能发生错误处理。
图16至18是根据本文描述的实施例的组件参数文件的说明性示例。在图16中,组件参数文件标识与可编程计算设备的内部外围设备相关联的信号的特性,诸如在用户界面(诸如图12的用户界面1200)的实例层中呈现的内部外围设备。在图17中,标识了可编程计算设备的相关组件、信号耦合和连接或键合。图18说明图17的组件参数文件如何指示具有与引脚4相关联的输入的内部外围设备GPIOA的用户选择。
实施例可以有助于避免信息的重复、减少设计和实现产品所需的时间、减少配置错误、以及减少信息呈现的复杂性。在一个实施例中,配置信息被存储并且被呈现为树,其利用数学树处理技术来维护和呈现配置信息。实施例还可以促进作为配置过程的一部分的检查(例如,软件一致性检查及电完整性检查),并且促进将技术的创新和改变并入到设计过程中(例如,多键合能力)。实施例可以便于配置可编程计算设备的内部外围设备组件以经由可编程计算设备的引脚与外部设备通信。
诸如可编程SoC的可编程计算设备可能具有可能需要配置的多个不同系统状态。这样的系统状态可以具有各种资源配置(例如,各种组件的操作状态)。此外,可能需要为可编程计算设备配置从一种系统状态到另一种系统状态的转换。例如,应用可以具有与应用的各种功能相关的多个应用状态,并且可以在各种应用状态之间转换。这些应用状态和应用状态之间的转换通常可以由应用程序开发人员使用适当的工具来限定。然而,这些应用程序状态可能与各种系统状态相关联,并且应用程序状态之间的转换可能导致需要从一种系统状态转换到新的系统状态。
图19是说明在咖啡机控制应用程序的上下文中的应用程序状态转换(例如,控制咖啡机的状态机的应用状态之间的转换)和相关联的系统状态转换的概念图。咖啡机(未示出)可以具有例如控制屏幕、用于调试的UART、用于驱动咖啡机组件(例如,研磨机、热水器等)的脉宽调制器(PWM)控制器、以及LED以提醒用户任何故障情况(例如,缺水、过滤器堵塞等)。如图所示,咖啡机控制应用有九种应用程序状态,以及与咖啡机控制器系统相关的五种系统状态。一种系统状态可能适用于多种应用状态;系统可能具有相同的配置或状态,但应用可能具有带有不同命令和算法的不同状态。
例如,如图所示,应用状态AppState_Standby和AppState_Selftests都与系统状态SysState_Standby相关联(其中UART配置为关闭,屏幕配置为关闭,PWM控制器配置为20%).从应用状态AppState_Standby到应用状态AppState_Selftests的应用状态转换不需要系统状态之间的转换。
然而,与不同系统状态相关联的应用状态之间的转换可能具有系统状态之间的相关转换。例如,从应用状态AppState_Standby到应用状态AppState_Coffee的转换与从系统状态SysState_Standby到系统状态SysState_On的转换相关联。在系统状态SysState_On下,UART关闭,屏幕开启,PWM控制器配置为100%。需要限定系统状态SysState_Standby和SysState_On之间的转换。
在各种实施例中,可以向用户呈现使能用户针对可编程计算设备选择系统状态、系统状态转换或其组合的图形用户界面。一旦被配置,可编程计算设备就可以执行本文描述的各种实施例以配置从一种系统状态至另一种系统状态的转换。现在将参照图21-25描述一个或多个实施例的操作,并且为了方便将参照上述实施例进行描述。在各实施例的至少一个实施例中,结合图20描述的过程2000可以由诸如图1中的主计算设备150等一个或多个计算设备来被实现或在其上被执行。在各个实施例的至少一个实施例中,分别结合图21和22描述的过程2100和2200可以由诸如图1中的可编程计算设备108等一个或多个计算设备来被实现或在其上被执行。
图20示出了根据本文描述的实施例的用于生成限定系统状态和转换的内容的过程2000的逻辑流程图。过程2000在开始块之后、在块2002处开始,其中项目被启动用于生成内容以实现或配置诸如图1中的可编程计算设备108等可编程计算设备的系统状态和转换。在一些实施例中,项目启动包括向用户呈现图形用户界面。图形用户界面请求或包括针对用户以选择特定可编程计算设备的输入界面。针对项目的全局映射或设置注册表也被启动。全局映射或设置注册表可以包括特定可编程计算设备的限定结构或初始设置,例如默认结构或初始设置。在各种实施例中,块2002可以采用图3中的块302的实施例来启动一个或多个项目。
过程2000前进到块2004,其中在图形用户界面中向用户呈现针对项目的多个可能系统状态的列表。在至少一个实施例中,可以基于针对项目选择的特定可编程计算设备针对用户生成可能系统状态的列表。系统状态可以是针对可编程计算设备设计的或与可编程计算设备兼容的那些系统状态。在一些实施例中,还可以基于可编程计算设备的执行上下文特定性来选择用于呈现的系统状态列表。在一些架构中,针对特定处理核或特定操作模式(例如,信任区模式)的执行上下文可以由用户选择。呈现给用户的系统状态列表可以取决于用户选择。
系统状态的列表可以包括可配置系统状态(例如,可配置组件,诸如图2中的可配置组件204)、或非可配置系统状态(例如,非可配置组件,诸如图2中的准备就绪组件220)、或其某种组合。例如,可以向用户呈现列表或其他界面,用户可以从中限定复合系统状态对象的所有元素(例如,执行上下文、系统时钟配置、电源模式等,以及各种组合)。
过程2000在块2006处继续,其中系统状态的用户选择被接收。在至少一个实施例中,用户可以经由图形用户界面从列表中选择系统状态。虽然过程2000讨论了用户一次选择单个系统状态,但是实施例不限于此。在一些实施例中,用户可以选择多个系统状态。
每个用户选择的系统系统状态限定用于当前项目的可编程计算设备的执行元件的配置,其可以包括用于一个或多个执行上下文的状态、外围设备状态或域状态。在各种实施例中,可编程计算设备可以包括或利用一个或多个芯片上系统(SoC)(见图1中的SoC109),其中每个SoC可以具有一个或多个处理核以及一个或多个存储器。可编程计算设备还可以包含SoC外部的存储器。因此,用户选择的系统系统状态可以标识可编程计算设备的一个或多个资源(例如,内部存储器、外部存储器、内部或外部外围设备等)及其配置。例如,系统系统状态可以标识时钟配置的聚集;SoC或处理器的配置(包括引脚设置);在SoC或处理器之间的通信;功率设置(例如,核低功率系统系统状态、功率域、调节器、唤醒信号等);或其他计算资源配置或设置。
在一些实施例中,用户选择的系统系统状态可以标识可编程计算设备可以从哪些其他系统系统状态转换。在其它实施例中,用户选择的系统系统状态可以标识可编程计算设备可以转换至的其它系统系统状态。
以下是可编程计算设备的用户限定的系统系统状态的示例性数据结构:
{
ID:ss0,//应用项目之内的标识符
Lable:“myStandbyState”,
XCtxt:0,//其属于应用项目之内的执行上下文
SysClkCfg:sysclk0,//待应用的系统时钟配置
ResCfgs:[res0,res1,res2,res,3…]//待应用的配置的标识符Predecessors:[ss1,ss2]//可编程计算设备可以从其转换的状态的标识符
AssociatedDomStates4:[ss0,ss7]//在多上下文的情况下,如果域是发起者,则该域在其他执行上下文中被应用。
Regulator:主功率调节器或低功率调节器,
EntryCondition:WFI或WFE
}
在各种实施例中,图形用户界面还可以使能用户以限定系统状态。在至少一个实施例中,用户可以使用图形用户界面来录入代码以执行用户限定的系统状态或上载具有此代码的文件,诸如JSON文件。
过程2000继续到判定块2008,其中确定用户是否选择了另一系统状态。如果选择了另一系统状态,则过程2000循环至块2006以接收用户对另一系统状态的选择;否则,过程2000流向块2010。如上描述,过程2000还可以由用户选择多个系统状态来被执行,这些系统状态然后可以由用户一起或单独地被配置。在各种实施例中,也可以响应于或结合各种其它组件的选择和配置来选择和配置用户选择的系统状态,如上描述。
在块2010处,在用户选择的系统状态之间的转换被生成。在一些实施例中,可以为呈现给用户的可能系统状态确定或生成转换,并且在一些实施例中,可以预定或预生成转换。在这些情况下,与用户选择的系统状态相关联的转换被选择。在其它实施例中,由用户限定转换。在各种实施例中,转换标识一个或多个约束、一个或多个资源设置等。以下是从可编程计算设备的一个用户限定的系统状态(例如,域状态0)到另一系统状态(例如,域状态1)的转换的示例性数据结构:
从域状态0到域状态1的转换:
//***将核置于STOP模式的约束:暂停收缩定时器***
HAL_SuspendTick();//e.g.,apply_transition_constraint(core.mode,STOPx
//***外围原子组态***
//解除USART3使能D2进入待机模式
HAL_RCC_USART3_CLK_DISABLE();//e.g.,DRIVER_Set(USART3.clock,disable
//***系统模式配置***
//配置D3域以跟随CPU子系统模式.
HAL_PWREx_ConfigD3Domain(PWR_D3_DOMAIN_STOP);//e.g.,apply_transition_constraint(pwdomain.d3,cpu_slave
//进入D3域到STOP模式
HAL_PWREx_EnterSTOPMode(PWR_MAINREGULATOR_ON,PWR_STOPENTRY_WFI,PWR_D3_DOMAIN);//e.g.,DRIVER_Set(pwdomain.d3,STOP
//将D1和D2输入到D待机模式
HAL_PWREx_EnterSTANDBYMode(PWR_D2_DOMAIN);//e.g.,DRIVER_Set(pwdomain.d2,SBY)
HAL_PWREx_EnterSTANDBYMode(PWR_D1_DOMAIN);//e.g.,DRIVER_Set(pwdomain.d1,SBY)
下文结合图22和23更详细地论述执行从一个用户选定状态到另一用户选定状态的状态转换的可编程计算设备的示例。
过程2000接下来在块2012处继续,其中基于用户选择的系统状态和生成的转换来生成用于可编程计算设备的内容。在各种实施例中,内容包括代码、设置、参数、选项位或字节、EEPROM数据、文档等,以及其各种组合,以设置、配置或限定可编程计算设备的系统状态或系统状态转换。内容可以包括明码(例如,C代码),明码由可编程计算设备用来初始化、配置或控制可编程计算设备的软件或硬件方面,以便在启用时设置用户选择的状态,并且在请求时从一个状态转换至另一个状态。因此,生成的内容可以是初始化代码、应用代码、配置代码等。该内容还可以是初始化、配置、文档化或控制可编程计算设备的软件或硬件方面的其它设置、参数或其它信息。在各种实施例中,如上所述,全局映射或设置注册表可以被利用以生成内容。
在一些实施例中,内容被构建成针对项目的二进制图像。该二进制图像是由可编程计算设备可用于初始化、配置或控制其硬件、软件或其组合以支持可编程计算设备采用的系统状态和转换的信息。在一些实施例中,所有生成的内容被利用以构建项目的二进制图像。在其它实施例中,生成的内容的一部分而不是全部被利用以构建针对项目的二进制图像。例如,在解释语言的情况下,可以仅将特定内容(例如,生成的代码)上载到可编程计算设备的特定存储区域中,而无需重新生成对其进行解释的二进制码。
过程2000继续到块2014,其中内容被提供给可编程计算设备。在一些实施例中,过程2000可以被执行多次以生成用于可编程计算设备的不同配置的不同内容。以此方式,可以向单独的可编程计算设备(即使是相同类型的可编程计算设备)提供不同配置,或可以向单个可编程计算设备提供不同配置以允许可编程计算设备的用户在不同配置之间改变。
在各种实施例中,可编程计算设备使用内容来生成或限定所有可能的系统状态或域状态。在一些实施例中,在项目级别处应用系统状态,而在执行上下文级别处应用域状态。在一些实施例中,内容限定针对可编程计算设备的一个或多个执行域。每个执行域针对执行域中的每个用户选择的系统状态标识每个执行元件及其相应的配置。系统或全局域也可以由内容来限定以标识每个执行元件及其对应于每个系统状态的配置。
在块2014之后,过程2000终止或以其它方式返回到调用过程以执行其它动作。在图20中示出的过程2000的实施例可以具有比示出的更多的过程块,可以具有比示出的更少的过程块,并且过程流程可以各种方式被修改。例如,过程2000可以被修改为包括在2010处基于更新的全局映射或设置注册表向用户呈现配置更新信息的块(例如,调用过程400),或者包括在限定的状态中用于设置的一致性检查块。在另一示例中,可以限定单个全局系统状态(绕过转换的定义)。请注意,定义单个全局系统状态可能会限制使用不一致配置的能力。
图21示出了根据本文描述的实施例的由可编程计算设备用于从第一系统状态转换至第二系统状态的过程2100的逻辑流程图。
过程2100在开始块之后、在块2102处开始,其中接收从第一系统状态前进到第二系统状态的请求。在各种实施例中,请求可以由可编程计算设备的用户输入。在其它实施例中,应用或操作特性中的改变可以导致生成请求。例如,如果可编程计算设备的电池功率降到阈值量以下,则可编程计算设备的系统状态可以进入低功率状态。作为另一个例子,用户可以选择从安全状态改变到非安全状态。
过程2100前进到块2104,其中针对第二状态选择执行元件。每个执行元件可以是可编程计算设备及其相对应的配置的资源。第二状态的执行元件的示例可以是图24中的执行元件2428a。在一些实施例中,第二状态可以标识选择每个执行元件的顺序。在各种实施例中,从执行域中选择执行元件,该执行域与和在该域中转换域状态的请求相关联的域相关联。在其它实施例中,从全局域中选择执行元件以转移系统状态。
过程2100在块2106处继续,其中将选择的执行元件复位到初始状态。在一些实施例中,初始状态可以是空状态,从该状态可以将执行元件置于任何有效配置中。在一些实施例中,可编程计算设备正从其转换至第二状态的第一状态可以是初始化状态。在这样的实施例中,因为每个执行元件已经处于初始状态,所以可以不执行块2106。
过程2100接下来进行到块2108,在块2108中应用针对第二状态的选择的执行元件的配置。如本文所提到的,执行域可以存储用于每个状态的执行元件的配置。因此,当针对执行域的第二状态选择执行元件时,还获得针对用于该状态的该执行元件的确认信息,然后在块2108处应用该确认信息。可编程计算设备可以通过设置执行元件的一个或多个参数来应用选择的执行元件配置。
过程2100接下来在判定块2110处继续,其中确定被做出是否另一执行元件要被选择。在各种实施例中,与第二状态相关联的每个执行元件将被选择。如果另一执行元件要被选择,则过程2100循环至块2104;否则,过程2100流向块2112。
在块2112处,第二状态被采用。在至少一个实施例中,可编程计算设备可以根据第二状态来执行。
在块2112之后,过程2100终止或以其他方式返回到调用过程以执行其他动作。虽然过程2100讨论了从第一状态到第二状态的转换,但是可编程计算设备可以具有多个不同的状态。因此,根据由用户选择并且由可编程计算设备采用的状态和转换,过程2100还可以被采用来从第一状态转换至第四状态,从第四状态转换至第二状态等。
图22示出了根据本文描述的实施例的用于从第一状态转换至第二状态的另一过程2200的逻辑流程图。
过程2200在开始块之后、在块2202处开始,其中从第一状态前进到第二状态的请求被接收。在各种实施例中,块2202可以采用图21中的块2102的实施例来接收状态改变请求。
过程2200进行到块2204,其中执行元件针对第二状态被选择。在各种实施例中,块2204可以采用图21中的块2104的实施例来选择第二状态的执行元件。
过程2200在块2206处继续,其中针对选择的执行元件在第一状态与第二状态之间的配置差被确定。在一些实施例中,针对第二状态的执行域可以标识第二状态可以从中转换的状态之间的配置差。在其它实施例中,可编程计算设备将执行元件的当前配置与第二状态配置进行比较以确定差。在各种实施例中,多个配置差可以被标识哟用于选择的执行元件。
过程2200接着进行到块2208,其中针对选择的执行元件选择在块2206处确定的一个或多个配置差。在一些实施例中,选择的执行元件可以标识待选择配置差的顺序。在至少一个实施例中,该顺序可以被基于在第一状态上、第二状态上或其组合上。在各种实施例中,多个配置差可以被选择,诸如如果配置差将同时被应用。
过程2200接下来在块2210处继续,其中一个或多个转换约束针对选择的配置差被应用。在至少一个实施例中,约束是允许在不影响可编程计算设备的另一执行元件或组件的性能或实现的情况下应用配置差的配置或参数。在各种实施例中,约束防止禁止转换或防止可编程计算设备进入非状态或无效条件。例如,针对要被应用的特定配置差,处理器可以被置于“停止”模式。在各种实施例中,一些配置差可以不具有转换约束。
过程2200前进到块2212,其中选择的配置差的配置被应用于选择的执行元件。在一些实施例中,仅配置差被应用。在其它实施例中,由选择的执行元件限定的配置被应用。在各种实施例中,块2212可以采用图21中的块2108的实施例来应用配置差。
过程2200在判定块2214处继续,其中确定被做出是否另一配置差被选择。在一些实施例中,多个配置差顺序地被选择,使得转换约束和配置设置可以被应用于选择的执行元件的每个配置差。如果另一配置差待被选择,则过程2200循环至块2208;否则,过程2200流向判定块2216。
在判定块2216处,确定被做出是否另一执行元件要被选择。在各种实施例中,与第二状态相关联的每个执行元件要被选择。如果另一执行元件要被选择,则过程2200循环至块2204;否则,过程2200流向块2218。
在块2218处,第二状态被采用。在至少一个实施例中,可编程计算设备可以根据第二状态来执行。
在块2218之后,过程2200终止或以其他方式返回到调用过程以执行其他动作。虽然过程2200讨论了从第一状态到第二状态的转换,但是可编程计算设备可以具有多个不同的状态。因此,根据由用户选择并且由可编程计算设备采用的状态和转换,过程2200还可以被采用以从第一状态转换至第四状态,从第四状态转换至第二状态等。
图21中示出的过程2100和图22中示出的过程2200的实施例可以具有比示出的更多的过程块、可以具有示出的更少的过程块,并且过程流程可以以各种方式被修改。例如,过程2100可以被修改以包括在块2110之后检查是否满足采用第二状态的任何条件的块。类似地,过程2200可以被修改以包括在块2216之后检查是否满足采用第二状态的任何条件的块。在另一示例中,图21中所示的过程2100和图22中所示的过程2200可以被修改以解决同步问题,例如在状态转换期间系统的不同处理核之间的同步问题。例如,在第一状态A和第二状态B之间转换第一处理核(参见图1的处理核114a)的过程中的某个时间,可能需要转换第二处理核(参见图1的处理核114x)从第一状态C到第二状态D。因此,过程2100或过程2200可以被修改,例如,在将第一处理核从状态A转换到状态B的过程期间,在完成第一处理核从状态A到状态B的转换之前,启动第二处理核从状态C转换到状态D。
图23是根据本文描述的实施例的使能用户以选择针对项目的状态的图形用户界面2300的说明性示例。
图形用户界面2300可以向用户显示多个不同的可能状态。在该示例中,图形用户界面2300向用户显示状态2302a-2302e。状态2302a将使可编程计算设备进入低功率模式;状态2302b将使可编程计算设备的恒温器传感器进入低功率模式;状态2302c将关闭可编程计算设备的恒温器传感器;状态2302d将使可编程计算设备进入安全模式;并且状态2302e将使可编程计算设备进入非安全模式。
在各种实施例中,状态可以被配置在树结构中以标识可编程计算设备内的不同的可能执行级别。例如,状态2302a-2302e可以是设置不限于执行域的系统状态,而状态2310a-2310b可以是设置限于一个执行域的域状态。虽然未示出,但是图形用户界面2300还可以包括允许用户定义状态的输入功能。
图形用户界面2300显示相对应的上下文2304a-2304e。上下文2304a-2306e标识状态2302a-2302e对应的组件或所有者。例如,状态2302b调整与可编程计算设备相关联的恒温器的状态。图形用户界面2300还针对每个状态2302a-2302e显示相对应的注释2306a-2306e。注释2306a-2306e向用户提供信息以识别状态和其可以如何操作。
用户可以通过点击状态来选择特定状态。在一些实施例中,图形用户界面2300可以向用户呈现(未示出)用于选择、限定或配置状态的附加选项。图形用户界面2300还可以呈现(未示出)针对选择的状态的转换选项。转换可以标识与转换相关联的执行元件,该转换是否要通过首先进入初始化状态来被执行,该转换是否要确定配置差,该配置差表明可编程计算设备可以从何时转换至选择的状态,该可编程计算设备可以从何时开始转换至选择的状态等。在一些实施例中,用户选择的状态和转换也可以被显示给用户。
图24是示出根据在此描述的实施例的用于管理在生成内容中使用的状态信息的示例概念结构2400的框图。在一些实施例中,可以在图形用户界面中向用户显示概念结构2400,以使能用户看到与不同的用户选择的状态相关联的执行元件以及其配置信息。
在该示例中,概念结构2400包括执行上下文2402和执行域2420。执行上下文2402是可编程计算设备的项目、应用或特定使用。用户已选择第一状态2404和第二状态2406以可由可编程计算设备访问和使用。
执行域2420存储针对与状态2404和2406相关联的每个执行元件2422的信息。在该示例中,执行域2420包括用于“外围设备_A”的执行元件2422a、用于“外围设备_B”的执行元件2422b、用于系统时钟的执行元件2422c、以及标识系统模式(例如,低功率模式、安全模式等)的执行元件2422d。执行元件2422a包括用于第一状态2404的配置信息2426a和用于第二状态2406的配置信息2428a;执行元件2422b包括用于第一状态2404的配置信息2426b和用于第二状态2406的配置信息2428b;执行元件2422c包括用于第一状态2404的配置信息2426c和用于第二状态2406的配置信息2428c;执行元件2422d包括用于第一状态2404的配置信息2426d和用于第二状态2406的配置信息2428d。在各种实施例中,配置信息包括用于为该状态配置该执行元件的约束、设置、参数或其它信息。
如果可编程计算设备正从初始化状态转换至第一状态2404,则配置信息2426a-2426d被获得并且被应用,如本文描述。在一些实施例中,如果可编程计算设备正从第一状态2404转换至第二状态2406,那么配置信息2428a-2428d在执行元件2422a-1323d第一次复位之后被获得并且被应用,如本文描述。在其它实施例中,配置差在第一状态2404的配置信息2426a-2426d和第二状态2406的配置信息2428a-2428d之间被确定,并且然后当在第一状态2404和第二状态2406之间转换时配置差被应用,如本文描述。
虽然概念结构2400示出了单个执行上下文、单个执行域、四个执行元件和两个状态,但是实施例不受限制。相反,一个或多个执行上下文可以被采用,一个或多个执行域可以被采用于一个或多个执行上下文,一个或多个执行元件可以被利用于一个或多个执行域,并且一个或多个状态可以被用户选择。
图25是根据本文描述的实施例的用户选择的状态之间的转换结构2500的说明性示例。在该说明性示例中,用户已经选择了“低功率睡眠模式”2502、“睡眠模式”2504、“低功率运行模式”2506、“关机模式”2508、“停止1模式”2510、“运行模式”2512、“待机模式”2514、“停止0模式”2516和“停止2模式”2518。通过采用本文描述的实施例,用户选择的状态之间的转换针对状态之间的适当转换被生成。在一些实施例中,可以向用户显示转换结构2500,以使能用户以“拖放”状态之间的转换箭头。
在各种实施例中,一致性检查器可以被采用以确保适当的转换。例如,在一些实施例中,一致性检查可以确保域状态一致并且所有外围配置不冲突(例如,防止使用被关断的另一外围来接通外围)。在其它实施例中,一致性检查器可以确保系统状态是一致的,使得域状态配置不冲突(例如,防止核被一个域设置为待机,而被另一个域设置为运行)。
在一个实施例中,一种方法包括:经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的组件的列表;经由图形用户界面从组件的列表接收针对项目的至少一个用户选择组件的第一选择;响应于至少一个用户选择组件可配置:经由图形用户界面呈现用于至少一个用户选择组件的用户可选择模板的第一列表;经由图形用户界面从第一用户可选择模板的列表接收至少一个用户可选择模板的第二选择;经由图形用户界面呈现用于至少一个用户选择组件的用户可选择参数的第二列表;经由图形用户界面接收来自用户可选择参数的第二列表的至少一个用户可选择参数的第三选择;基于至少一个用户选择模板的第二选择和至少一个用户选择参数的第三选择来生成用于至少一个用户选择组件的设置;以及基于用于至少一个用户选择组件中的每个用户选择组件的设置来生成或更新设置注册表;以及基于至少一个用户选择组件和设置注册表生成用于可编程计算设备的内容。在一个实施例中,方法包括向可编程计算设备提供内容。在一个实施例中,生成内容包括生成初始化代码,该初始化代码基于至少一个用户选择组件和设置注册表来初始化可编程计算设备的软件。在一个实施例中,生成内容包括生成初始化代码,该初始化代码基于至少一个用户选择组件和设置注册表来初始化可编程计算设备的硬件。在一个实施例中,生成内容包括基于至少一个用户选择组件和设置注册表生成控制可编程计算设备的软件的应用代码。在一个实施例中,接收至少一个用户选择参数的第三选择包括经由图形用户界面接收由用户选择并且由至少一个用户选择参数限定的一个或多个值。在一个实施例中,方法包括:响应于接收至少一个用户选择参数的第三选择,基于第三选择来检测对设置注册表中的第一值的改变,以及基于在第一值与至少一个第二值之间的至少一个相关性来通过设置注册表传播改变。在一个实施例中,方法包括:响应于接收至少一个用户选择参数的第三选择,基于第三选择来检测对设置注册表中的第一值的改变,并且在通过设置注册表改变传播之前,更新图形用户界面以显示对设置注册表中的取决于第一值的至少一个第二值的改变。在一个实施例中,该方法包括基于至少一个用户选择模板的第二选择来选择用户可选择参数的第二列表。在一个实施例中,方法包括:响应于至少一个用户选择组件是不可配置的,基于至少一个用户选择模板的第二选择和至少一个用户选择参数的第三选择来生成用于至少一个用户选择组件的设置,以及基于用于至少一个用户选择的不可配置的组件的附加设置来更新设置注册表。在一个实施例中,生成内容包括基于至少一个用户选择组件和设置注册表来生成控制可编程计算设备的软件的应用程序内容。
在一个实施例中,非瞬态计算机可读介质的内容配置处理设备以执行一种方法。该方法包括:经由图形用户界面向用户显示与用于可编程计算设备相关联的项目的组件的列表;经由图形用户界面从组件的列表接收针对项目的至少一个用户选择组件的第一选择;响应于至少一个用户选择组件可配置:经由图形用户界面显示针对至少一个用户选择组件的用户可选择模板的第一列表;经由图形用户界面接收来自第一用户可选择模板列表的至少一个用户可选择模板的第二选择;经由图形用户界面显示针对至少一个用户选择组件的用户可选择参数的第二列表;经由图形用户界面接收来自用户可选择参数的第二列表的至少一个用户可选择参数的第三选择;基于至少一个用户选择模板的第二选择和至少一个用户选择参数的第三选择来生成用于至少一个用户选择组件的设置;以及基于针对至少一个用户选择组件中的每个用户选择组件的设置来生成或更新设置注册表;以及基于至少一个用户选择组件和设置注册表生成用于可编程计算设备的内容。在一个实施例中,方法包括向可编程计算设备提供生成的内容。在一个实施例中,方法包括:响应于接收至少一个用户选择参数的第三选择,基于第三选择来检测对设置注册表中的第一值的改变,以及基于在第一值与至少一个第二值之间的至少一个相关性来通过设置注册表传播改变。在一个实施例中,方法包括,响应于接收至少一个用户选择参数的第三选择:基于第三选择检测设置注册表中对第一值的改变;更新图形用户界面以显示对设置注册表中取决于第一值的至少一个第二值的改变;以及基于对更新的图形用户界面的用户响应,通过设置注册表选择性地传播改变。在一个实施例中,生成内容包括基于至少一个用户选择组件和设置注册表生成初始化可编程计算设备的软件的初始化代码。在一个实施例中,生成内容包括基于至少一个用户选择组件和设置注册表生成初始化可编程计算设备的硬件的初始化代码。在一个实施例中,计算机可读介质的内容包括可由处理设备执行的指令。
在一个实施例中,一种计算设备包括:显示设备;存储器,其在操作中存储计算机指令;以及至少一个处理器,该至少一个处理器在操作中执行计算机指令以:经由显示设备向用户呈现针对与可编程计算设备相关联的项目的组件的列表;从组件的列表接收针对项目的至少一个用户选择组件的第一选择;响应于至少一个用户选择组件可配置:经由显示设备呈现用于至少一个用户选择组件的用户可选择模板的第一列表;从用户可选择模板的第一列表接收至少一个用户可选择模板的第二选择;经由显示设备呈现用于至少一个用户选择组件的用户可选择参数的第二列表;从用户可选择参数的第二列表接收至少一个用户可选择参数的第三选择;基于至少一个用户选择模板的第二选择和至少一个用户选择参数的第三选择来生成用于至少一个用户选择组件的设置;以及基于至少一个用户选择组件中的每个用户选择组件的设置来生成或更新设置注册表;以及基于至少一个用户选择组件和设置注册表生成用于可编程计算设备的内容。在一个实施例中,至少一个处理器在操作中执行计算机指令,以响应于接收至少一个用户选择参数的第三选择,基于第三选择来检测对设置注册表中的第一值的改变,并且基于在第一值与至少一个第二值之间的至少一个相关性通过设置注册表传播改变。在一个实施例中,至少一个处理器在操作中执行计算机指令,以响应于接收至少一个用户选择参数的第三选择,基于第三选择来检测对设置注册表中的第一值的改变,更新显示给用户的图形用户界面以显示对设置注册表中的取决于第一值的至少一个第二值的改变,以及基于对显示给用户的更新的图形用户界面的用户响应来通过设置注册表选择性地传播改变。在一个实施例中,至少一个处理器在操作中执行计算机指令以向可编程计算设备提供内容。在一个实施例中,至少一个处理器在操作中通过执行计算机指令以生成初始化代码来生成内容,初始化代码基于至少一个用户选择组件和设置注册表来初始化可编程计算设备的软件。在一个实施例中,至少一个处理器在操作中通过执行计算机指令以生成初始化代码来生成内容,该初始化代码基于至少一个用户选择组件和设置注册表来初始化可编程计算设备的硬件。在一个实施例中,至少一个处理器在操作中通过执行计算机指令来生成内容以:基于至少一个用户选择组件和设置注册表生成初始化可编程计算设备的软件的初始化内容。在一个实施例中,至少一个处理器在操作中通过执行计算机指令以生成初始化内容来生成内容,初始化内容基于至少一个用户选择组件和设置注册表来初始化可编程计算设备的硬件。
在一个实施例中,一种系统包括可编程计算设备和非瞬态计算机可读介质。非瞬态计算机可读介质具有内容,内容在操作中使得处理器以:经由图形用户界面向用户显示针对与可编程计算设备相关联的项目的组件的列表;经由图形用户界面从组件的列表接收针对项目的至少一个用户选择组件的第一选择;响应于至少一个用户选择组件可配置:经由图形用户界面显示用于至少一个用户选择组件的用户可选择模板的第一列表;经由图形用户界面接收来自用户可选择模板的第一列表的至少一个用户可选择模板的第二选择;经由图形用户界面显示用于至少一个用户选择组件的用户可选择参数的第二列表;经由图形用户界面接收来自用户可选择参数的第二列表的至少一个用户可选择参数的第三选择;基于至少一个用户选择模板的第二选择和至少一个用户选择参数的第三选择来生成用于至少一个用户选择组件的设置;以及基于至少一个用户选择组件中的每个用户选择组件的设置来生成或更新设置注册表;基于至少一个用户选择组件和设置注册表生成用于可编程计算设备的内容;以及向可编程计算设备提供内容。在一个实施例中,可编程计算设备包括微处理器,其在操作中执行内容以初始化可编程计算设备的软件。在一个实施例中,可编程计算设备包括微处理器,其在操作中执行内容以初始化可编程计算设备的硬件。在一个实施例中,可编程计算设备包括微处理器,其在操作中执行内容作为可编程计算设备的软件应用。
在一个实施例中,一种方法包括:经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的一组引导配置选项,呈现包括一组引导配置选项;呈现与可编程计算设备相关联的配置引脚设置;呈现与可编程计算设备相关联的选项字节值;以及呈现一组引导配置选项;经由图形用户界面接收针对从呈现的一组引导配置选项中选择的项目的引导配置选项的选择;基于选择的引导配置选项生成或更新设置注册表;以及基于选择的引导配置选项和设置注册表针对可编程计算设备生成内容。在一个实施例中,呈现配置引脚设置包括读取可编程计算设备的配置引脚设置。在一个实施例中,呈现选项字节值包括检索与可编程计算设备相关联的选项字节值。在一个实施例中,呈现的一组配置选项是配置引脚设置的函数。在一个实施例中,呈现的一组配置选项是选项字节值的函数。在一个实施例中,呈现的选项字节值是选择的配置选项的函数,并且该方法包括基于选择的配置选项来选择选项字节设置。在一个实施例中,呈现一组引导配置选项包括呈现一组引导序列选项。在一个实施例中,呈现引导序列选项包括呈现:将多个处理核中的第一处理核指定为主处理核,将多个处理核中的第二处理核指定为从处理核的选项;指示多个处理核将被顺序引导的选项;指示多个处理核将被并行引导的选项;针对多个处理核中的处理核设置同步协议的选项;针对多个处理核中的处理核设置同步资源的选项;针对多个处理核中的处理核设置引导地址的选项;设置与多个处理核中的处理核相关联的执行上下文的选项;将存储器分配给主设备以用于存储由从设备执行的代码的选项;配置主设备为针对从设备设置数据配置的选项;配置主设备为针对从设备设置堆栈指针的选项;或其组合。在一个实施例中,方法包括向可编程计算设备提供内容。在一个实施例中,生成内容包括生成初始化代码,该初始化代码基于选择的引导配置选项和设置注册表来初始化可编程计算设备的软件。在一个实施例中,方法包括经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的组件的列表;经由图形用户界面从组件的列表接收针对项目的至少一个用户选择组件的第一选择;响应于至少一个用户选择组件可配置:经由图形用户界面呈现用于至少一个用户选择组件的用户可选择模板的第一列表;经由图形用户界面接收来自用户可选择模板的第一列表的至少一个用户可选择模板的第二选择;经由图形用户界面呈现用于至少一个用户选择组件的用户可选择参数的第二列表;经由图形用户界面接收来自用户可选择参数的第二列表的至少一个用户可选择参数的第三选择;以及基于至少一个用户选择模板的第二选择和至少一个用户选择参数的第三选择来生成至少一个用户选择组件的设置,其中,生成或更新设置注册表是基于至少一个用户选择组件中的每个用户选择组件的设置,并且生成可编程计算设备的内容是基于至少一个用户选择组件和设置注册表。
在一个实施例中,非瞬态计算机可读介质的内容配置处理设备以执行一种方法。方法包括:经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的一组引导配置选项,呈现包括一组引导配置选项;呈现与可编程计算设备相关联的配置引脚设置;呈现与可编程计算设备相关联的选项字节值;以及一组引导配置选项;经由图形用户界面接收针对从呈现的一组引导配置选项中选择的项目的引导配置选项的选择;基于选择的引导配置选项生成或更新设置注册表;以及基于选择的引导配置选项和设置注册表为可编程计算设备生成内容。在一个实施例中,呈现配置引脚设置包括读取可编程计算设备的配置引脚设置。在一个实施例中,呈现的一组配置选项是配置引脚设置的函数。在一个实施例中,呈现一组引导配置选项包括呈现一组引导序列选项。在一个实施例中,呈现引导序列选项包括呈现:将多个处理核中的第一处理核指定为主处理核并且将多个处理核中的第二处理核指定为从处理核的选项;指示多个处理核将被顺序引导的选项;指示多个处理核将被并行引导的选项;针对多个处理核中的处理核设置同步协议的选项;针对多个处理核中的处理核设置同步资源的选项;针对多个处理核中的处理核设置引导地址的选项;设置与多个处理核中的处理核相关联的执行上下文的选项;将存储器分配给主设备以用于存储由从设备执行的代码的选项;配置主设备为针对从设备设置数据配置的选项;配置主设备为针对从设备设置堆栈指针的选项;或其组合。在一个实施例中,方法包括向可编程计算设备提供生成的内容。在一个实施例中,方法包括:经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的组件的列表;经由图形用户界面从组件的列表接收针对项目的至少一个用户选择组件的第一选择;响应于至少一个用户选择组件可配置:经由图形用户界面呈现用于至少一个用户选择组件的用户可选择模板的第一列表;经由图形用户界面接收来自用户可选择模板的第一列表的至少一个用户可选择模板的第二选择;经由图形用户界面呈现用于至少一个用户选择组件的用户可选择参数的第二列表;经由图形用户界面接收来自用户可选择参数的第二列表的至少一个用户可选择参数的第三选择;以及基于至少一个用户选择模板的第二选择和至少一个用户选择参数的第三选择来生成至少一个用户选择组件的设置,其中生成或更新设置注册表是基于至少一个用户选择组件中的每个用户选择组件的设置,并且生成可编程计算设备的内容是基于至少一个用户选择组件和设置注册表。在一个实施例中,计算机可读介质的内容包括可以由处理设备执行的指令。
在一个实施例中,一种计算设备包括:显示设备;存储器,其在操作中存储计算机指令;以及至少一个处理器。至少一个处理器在操作中执行计算机指令以:经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的一组引导配置选项,呈现包括一组引导配置选项;呈现与可编程计算设备相关联的配置引脚设置;呈现与可编程计算设备相关联的选项字节值;以及呈现一组引导配置选项;经由图形用户界面接收用于从呈现的一组引导配置选项中选择的项目的引导配置选项的选择;基于选择的引导配置选项生成或更新设置注册表;以及基于选择的引导配置选项和设置注册表为可编程计算设备生成内容。在一个实施例中,呈现配置引脚设置包括读取可编程计算设备的配置引脚设置。在一个实施例中,呈现的一组配置选项是配置引脚设置的函数、选项字节值的函数、或配置引脚设置和选项字节值两者的函数。在一个实施例中,呈现一组引导配置选项包括呈现一组引导序列选项。在一个实施例中,呈现引导序列选项包括呈现:将多个处理核中的第一处理核指定为主处理核并且将多个处理核中的第二处理核指定为从处理核的选项;指示多个处理核将被顺序引导的选项;指示多个处理核将被并行引导的选项;针对多个处理核中的处理核设置同步协议的选项;针对多个处理核中的处理核设置同步资源的选项;针对多个处理核中的处理核设置引导地址的选项;设置与多个处理核中的处理核相关联的执行上下文的选项;将存储器分配给主设备以用于存储由从设备执行的代码的选项;配置主设备为针对从设备设置数据配置的选项;配置主设备为针对从设备设置堆栈指针的选项;或其组合。在一个实施例中,至少一个处理器在操作中执行计算机指令以:经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的组件的列表;经由图形用户界面从组件的列表接收针对项目的至少一个用户选择组件的第一选择;响应于至少一个用户选择组件可配置:经由图形用户界面呈现用于至少一个用户选择组件的用户可选择模板的第一列表;经由图形用户界面接收来自用户可选择模板的第一列表的至少一个用户可选择模板的第二选择;经由图形用户界面呈现用于至少一个用户选择组件的用户可选择参数的第二列表;经由图形用户界面接收来自用户可选择参数的第二列表的至少一个用户可选择参数的第三选择;以及基于对至少一个用户选择模板的第二选择和对至少一个用户选择参数的第三选择来生成用于至少一个用户选择组件的设置,其中,生成设置注册表是基于针对至少一个用户选择组件中的每个用户选择组件的设置,并且生成可编程计算设备的内容是基于至少一个用户选择组件和设置注册表。
在一个实施例中,一种系统包括可编程计算设备和非瞬态计算机可读介质。非瞬态计算机可读介质具有内容,内容在操作中使得处理器以:经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的一组引导配置选项,呈现包括一组引导配置选项;呈现与可编程计算设备相关联的配置引脚设置;呈现与可编程计算设备相关联的选项字节值;以及呈现一组引导配置选项;经由图形用户界面接收针对从呈现的一组引导配置选项中选择的项目的引导配置选项的选择;基于选择的引导配置选项生成或更新设置注册表;以及基于选择的引导配置选项和设置注册表针对可编程计算设备生成内容。在一个实施例中,可编程计算设备包括微处理器,其在操作中执行内容以初始化可编程计算设备的软件。在一个实施例中,可编程计算设备包括微处理器,其在操作中执行内容以初始化可编程计算设备的硬件。
在一个实施例中,一种方法包括:经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的一组配置选项,呈现包括一组配置选项;呈现可编程计算设备的一组内部外围设备;呈现可编程计算设备的接口的一组焊盘;以及呈现可编程计算设备的一组引脚;经由图形用户界面接收一组内部外围设备中的一个内部外围设备与一组引脚中的一个引脚相关联的配置选择信息;基于接收的配置选择信息维护设置注册表;以及基于接收的配置选择信息和设置注册表针对可编程计算设备生成内容。在一个实施例中,呈现包括从设置注册表检索配置信息。在一个实施例中,维护设置注册表包括检索和更新设置注册表。在一个实施例中,维护设置注册表包括生成设置注册表。在一个实施例中,配置选择信息:标识在一组内部外围设备的内部外围设备与一组焊盘的焊盘之间的信号耦合;并且标识在一组焊盘的焊盘和一组引脚的引脚之间的连接。在一个实施例中,配置选择信息将一组内部外围设备的内部外围设备与一组焊盘的多个焊盘相关联。在一个实施例中,配置选择信息将一组焊盘中的多个焊盘与一组引脚中的引脚相关联。在一个实施例中,方法包括:响应于接收的配置选择信息来执行软件一致性检查。在一个实施例中,方法包括:响应于接收的配置选择信息执行电完整性检查。在一个实施例中,方法包括:响应于接收的配置选择信息执行软件一致性检查;以及响应于接收的配置选择信息执行电完整性检查。在一个实施例中,执行软件一致性检查和电完整性检查包括从设置注册表检索配置信息。在一个实施例中,呈现包括呈现树结构,该树结构具有呈现一组内部外围设备的实例层、呈现一组焊盘的界面层、以及呈现一组引脚的引脚层。在一个实施例中,呈现包括:在一组内部外围设备的内部外围设备与一组焊盘的焊盘之间呈现一组信号耦合;以及在一组焊盘的焊盘和一组引脚的引脚之间提供一组连接。在一个实施例中,方法包括:向可编程计算设备提供内容。
在一个实施例中,一种非瞬态计算机可读介质的内容配置处理设备以执行一种方法,方法包括:经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的一组配置选项,呈现包括一组配置选项;呈现可编程计算设备的一组内部外围设备;呈现可编程计算设备的接口的一组焊盘;以及呈现可编程计算设备的一组引脚;经由图形用户界面接收一组内部外围设备中的一个内部外围设备与一组引脚中的一个引脚相关联的配置选择信息;基于接收的配置选择信息维护设置注册表;以及基于接收的配置选择信息和设置注册表针对可编程计算设备生成内容。在一个实施例中,计算机可读介质的内容包括指令。在一个实施例中,呈现包括从设置注册表检索配置信息。在一个实施例中,维护设置注册表包括检索和更新设置注册表。在一个实施例中,维护设置注册表包括生成设置注册表。在一个实施例中,配置选择信息标识在一组内部外围设备的内部外围设备与一组焊盘的焊盘之间的信号耦合,并且标识在一组焊盘的焊盘与一组引脚的引脚之间的连接。在一个实施例中,配置选择信息将一组内部外围设备的内部外围设备与一组焊盘的多个焊盘相关联。在一个实施例中,配置选择信息将一组焊盘中的多个焊盘与一组引脚中的引脚相关联。在一个实施例中,方法包括:响应于接收的配置选择信息执行软件一致性检查;响应于接收的配置选择信息执行电完整性检查;或者响应于接收的配置选择信息执行软件一致性检查,并且响应于接收的配置选择信息执行电完整性检查。在一个实施例中,方法包括向可编程计算设备提供生成的内容。
在一个实施例中,计算设备包括显示设备、在操作中存储计算机指令的存储器、以及至少一个处理器。至少一个处理器在操作中执行计算机指令以:经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的一组配置选项,呈现包括一组配置选项;呈现可编程计算设备的一组内部外围设备;呈现可编程计算设备的接口的一组焊盘;以及呈现可编程计算设备的一组引脚;经由图形用户界面接收一组内部外围设备中的一个内部外围设备与一组引脚中的一个引脚相关联的配置选择信息;基于接收的配置选择信息维护设置注册表;以及基于接收的配置选择信息和设置注册表生成用于可编程计算设备的内容。在一个实施例中,呈现包括从设置注册表检索配置信息。在一个实施例中,维护设置注册表包括检索和更新设置注册表。在一个实施例中,维护设置注册表包括生成设置注册表。在一个实施例中,配置选择信息:标识一组内部外围设备的内部外围设备与一组焊盘的焊盘之间的信号耦合;并且标识在一组焊盘的焊盘和一组引脚的引脚之间的连接。在一个实施例中,配置选择信息将一组内部外围设备的内部外围设备与一组焊盘的多个焊盘相关联。在一个实施例中,配置选择信息将一组焊盘中的多个焊盘与一组引脚中的引脚相关联。在一个实施例中,至少一个处理器在操作中执行计算机指令以:响应于接收的配置选择信息执行软件一致性检查;响应于接收的配置选择信息执行电完整性检查;或者响应于接收的配置选择信息执行软件一致性检查,并且响应于接收的配置选择信息执行电完整性检查。在一个实施例中,呈现包括呈现树结构,其具有呈现一组内部外围设备的实例层、呈现一组焊盘的界面层、以及呈现一组引脚的引脚层。在一个实施例中,呈现包括:在一组内部外围设备的内部外围设备与一组焊盘的焊盘之间呈现一组信号耦合;以及在一组焊盘的焊盘和一组引脚的引脚之间提供一组连接。在一个实施例中,至少一个处理器在操作中执行计算机指令以向可编程计算设备提供内容。
在一个实施例中,一种系统包括可编程计算设备和非瞬态计算机可读介质。非瞬态计算机可读介质具有内容,内容在操作中使得处理器以:经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的一组配置选项,呈现包括一组配置选项;呈现可编程计算设备的一组内部外围设备;呈现可编程计算设备的接口的一组焊盘;呈现可编程计算设备的一组引脚;经由图形用户界面接收一组内部外围设备中的一个内部外围设备与一组引脚中的一个引脚相关联的配置选择信息;基于接收的配置选择信息维护设置注册表;以及基于接收的配置选择信息和设置注册表生成用于可编程计算设备的内容。在一个实施例中,可编程计算设备包括微处理器,其在操作中执行内容以初始化可编程计算设备。
在一个实施例中,方法包括:由主计算设备经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的状态的列表;由主计算设备经由图形用户界面从状态的列表接收针对项目的第一用户选择的状态的第一选择;由主计算设备经由图形用户界面接收针对项目的第二用户选择的状态的第二选择;由主计算设备生成在第一用户选择的状态到第二用户选择的状态之间的转换;由主计算设备基于第一用户选择的状态、第二用户选择的状态以及生成的在第一用户选择的状态与第二用户选择的状态之间的转换来生成或更新设置注册表;以及由主计算设备基于设置注册表生成用于可编程计算设备的内容。在一个实施例中,方法包括:向可编程计算设备提供内容。在一个实施例中,接收针对来自状态的列表的项目的第一用户选择的状态的第一选择包括:经由图形用户界面接收选择可编程计算设备的限定的状态的用户输入。在一个实施例中,接收针对来自状态的列表的项目的第一用户选择的状态的第一选择包括:经由图形用户界面接收选择可编程计算设备的系统状态的用户输入。在一个实施例中,接收针对来自状态的列表的项目的第一用户选择的状态的第一选择包括:经由图形用户界面接收选择可编程计算设备的域状态的用户输入。在一个实施例中,接收针对项目的第二用户选择的状态的第二选择包括:经由图形用户界面接收限定可编程计算设备的状态的用户输入。在一个实施例中,生成从第一用户选择的状态到第二用户选择的状态的转换包括:由主设备针对与第二用户选择的状态相关联的至少一个执行元件选择至少一个限定的转换约束,用于从第一用户选择的状态转换至第二用户选择的状态。在一个实施例中,生成从第一用户选择的状态到第二用户选择的状态的转换包括:由主设备接收针对与第二用户选择的状态相关联的至少一个执行元件的至少一个用户限定的转换约束,用于从第一用户选择的状态转换至第二用户选择的状态。在一个实施例中,方法包括:由可编程计算设备接收从第一用户选择的状态前进到第二用户选择的状态的请求;以及由可编程计算设备基于生成的转换将可编程计算设备从第一用户选择的状态转换至第二用户选择的状态。在一个实施例中,将可编程计算设备从第一用户选择的状态转换至第二用户选择的状态包括:由可编程计算设备选择与第二用户选择的状态相关联的每个执行元件;由可编程计算设备获得每个执行元件的配置;由可编程计算设备将每个执行元件复位到初始状态;以及由可编程计算设备将针对每个执行元件的配置从初始状态应用于第二用户选择的状态。在一个实施例中,将可编程计算设备从第一用户选择的状态转换至第二用户选择的状态包括:由可编程计算设备选择与第二用户选择的状态相关联的每个执行元件;由可编程计算设备确定针对每个执行元件在第一用户选择的状态和第二用户选择的状态之间的配置差;由可编程计算设备针对至少一个执行元件应用于至少一个配置差的至少一个转换约束;以及由可编程计算设备将每个执行元件的配置差从第一用户选择的状态应用于第二用户选择的状态。
在一个实施例中,一个系统包括:具有第一存储器的可编程计算设备,第一存储器在操作中存储第一计算机指令;以及至少一个第一处理器。至少一个第一处理器在操作中执行第一计算机指令以:接收配置第一用户选择的状态、第二用户选择的状态、以及在第一用户选择的状态和第二用户选择的状态之间转换的内容;接收从第一用户选择的状态前进到第二用户选择的状态的请求;以及基于转换将可编程计算设备从第一用户选择的状态转换至第二用户选择的状态。系统包括一个主计算设备,主计算设备包括:显示设备;第二存储器,其在操作中存储第二计算机指令;以及至少一个第二处理器。至少一个第二处理器在操作中执行第二计算机指令以:经由显示设备呈现用于与可编程计算设备相关联的项目的状态的列表;接收针对来自状态的列表的项目的第一用户选择的状态的第一选择;接收针对项目的第二用户选择的状态的第二选择;生成从第一用户选择的状态到第二用户选择的状态的转换;基于第一用户选择的状态、第二用户选择的状态以及在第一用户选择的状态与第二用户选择的状态之间的转换来生成设置注册表;以及基于设置注册表生成用于可编程计算设备的内容。在一个实施例中,主计算设备的至少一个第二处理器在操作中通过执行第二计算机指令来接收针对状态的列表中的项目的第一用户选择的状态的第一选择以:接收选择可编程计算设备的限定状态的用户输入。在一个实施例中,主计算设备的至少一个第二处理器在操作中通过执行第二计算机指令来接收针对状态的列表中的项目的第一用户选择的状态的第一选择以:接收选择可编程计算设备的系统状态的用户输入。在一个实施例中,主计算设备的至少一个第二处理器在操作中通过执行第二计算机指令来生成从第一用户选择的状态到第二用户选择的状态的转换以:接收与第二用户选择的状态相关联的至少一个执行单元的至少一个用户限定的转换约束,用于从第一用户选择的状态转换至第二用户选择的状态。在一个实施例中,可编程计算设备的至少一个第一处理器在操作中通过执行第一计算机指令将可编程计算设备从第一用户选择的状态转换至第二用户选择的状态以:选择与第二用户选择的状态相关联的每个执行元件;为每个执行元件获得配置;复位每个执行元件至初始状态;以及将每个执行元件的配置从初始状态应用于第二用户选择的状态。在一个实施例中,可编程计算设备的至少一个第一处理器在操作中通过执行第一计算机指令将可编程计算设备从第一用户选择的状态转换至第二用户选择的状态以:选择与第二用户选择的状态相关联的每个执行元件;针对每个执行单元确定第一用户选择的状态和第二用户选择的状态之间的配置差;针对至少一个执行单元应用于至少一个配置差的至少一个转换约束;以及针对每个执行元件的配置差从第一用户选择的状态应用于第二用户选择的状态。
在一个实施例中,非瞬态计算机可读介质的内容配置处理设备以执行一种方法。方法包括:经由图形用户界面向用户呈现用于与可编程计算设备相关联的项目的状态的列表;经由图形用户界面从状态的列表接收针对项目的第一用户选择的状态的第一选择;经由图形用户界面接收针对项目的第二用户选择的状态的第二选择;生成从第一用户选择的状态到第二用户选择的状态的转换;基于第一用户选择的状态、第二用户选择的状态以及生成的在第一用户选择的状态与第二用户选择的状态之间的转换来维护设置注册表;以及基于设置注册表用于可编程计算设备生成内容。在一个实施例中,计算机可读介质的内容包括可以由处理设备执行的指令。在一个实施例中,方法包括:向可编程计算设备提供内容。在一个实施例中,接收针对来自状态的列表的项目的第一用户选择的状态的第一选择包括:经由图形用户界面接收选择可编程计算设备的限定状态的用户输入;经由图形用户界面接收选择可编程计算设备的系统状态的用户输入;经由图形用户界面接收选择可编程计算设备的域状态的用户输入;或其组合。在一个实施例中,接收针对项目的第二用户选择的状态的第二选择包括:经由图形用户界面接收限定可编程计算设备的状态的用户输入。在一个实施例中,生成从第一用户选择的状态到第二用户选择的状态的转换包括:针对与第二用户选择的状态相关联的至少一个执行单元选择至少一个定义的转换约束,用于从第一用户选择的状态转换至第二用户选择的状态。在一个实施例中,生成从第一用户选择的状态到第二用户选择的状态的转换包括:接收用于与第二用户选择的状态相关联的至少一个执行元件的至少一个用户限定的转换约束,以从第一用户选择的状态转换至第二用户选择的状态。
在一实施例中,一种非瞬态计算机可读介质的内容配置可编程计算设备的微控制器以执行一种方法。方法包括:接收配置第一用户选择的状态、第二用户选择的状态、以及在第一用户选择的状态和第二用户选择的状态之间转换的内容;接收从第一用户选择的状态前进到第二用户选择的状态的请求;以及通过以下各项基于接收的内容将可编程计算设备从第一用户选择的状态转换至第二用户选择的状态:选择与第二用户选择的状态相关联的每个执行元件;确定每个执行元件在第一用户选择的状态和第二用户选择的状态之间的配置差;针对至少一个执行元件的至少一个配置差应用至少一个转换约束;以及将每个执行元件的配置差从第一用户选择的状态应用于第二用户选择的状态。在一个实施例中,将可编程计算设备从第一用户选择的状态转换至第二用户选择的状态包括:由可编程计算设备选择与第二用户选择的状态相关联的每个执行元件;由可编程计算设备获得每个执行元件的配置;由可编程计算设备将每个执行元件复位到初始状态;以及由可编程计算设备将针对每个执行元件的配置从初始状态应用于第二用户选择的状态。在一个实施例中,将可编程计算设备从第一用户选择的状态转换至第二用户选择的状态包括:由可编程计算设备选择与第二用户选择的状态相关联的每个执行元件;由可编程计算设备确定每个执行元件在第一用户选择的状态和第二用户选择的状态之间的配置差;由可编程计算设备针对至少一个执行元件应用于至少一个配置差的至少一个转换约束;以及由可编程计算设备将每个执行元件的配置差从第一用户选择状态应用于第二用户选择状态。
在一个实施例中,计算设备包括在操作中存储计算机指令的存储器,以及至少一个处理器。至少一个处理器在操作中执行计算机指令以:经由显示设备呈现用于与可编程计算设备相关联的项目的状态的列表;接收针对来自状态的列表的项目的第一用户选择的状态的第一选择;接收针对项目的第二用户选择的状态的第二选择;生成从第一用户选择的状态到第二用户选择的状态的转换;基于第一用户选择的状态、第二用户选择的状态以及在第一用户选择的状态与第二用户选择的状态之间的转换来生成设置注册表;以及基于设置注册表生成用于可编程计算设备的内容。在一个实施例中,至少一个处理器在操作中通过执行第二计算机指令来从状态的列表接收针对项目的第一用户选择的状态的第一选择以:接收选择可编程计算设备的限定状态的用户输入。在一个实施例中,至少一个处理器在操作中通过执行第二计算机指令来从状态的列表接收针对项目的第一用户选择的状态的第一选择以:接收选择可编程计算设备的系统状态的用户输入。在一个实施例中,至少一个处理器在操作中通过执行第二计算机指令来生成从第一用户选择的状态到第二用户选择的状态的转换以:接收与第二用户选择的状态相关联的至少一个执行单元的至少一个用户限定的转换约束,以从第一用户选择的状态转换至第二用户选择的状态。
本文提供的公开内容的标题和摘要仅是为了方便,而不限制或解释实施例的范围或含义。
上述各种实施例可以组合以提供另外的实施例。如果需要,可以修改实施例的各方面以采用各种专利、申请和出版物的概念来提供另外的实施例。
根据上述详细描述,可以对实施例进行这些和其它改变。通常,在下面的权利要求中,所使用的术语不应该被解释为将权利要求限制到在说明书和权利要求中公开的特定实施例,而是应该被解释为包括所有可能的实施例以及这些权利要求被授权的等同物的全部范围。因此,权利要求不受本公开的限制。

Claims (28)

1.一种方法,包括:
经由图形用户界面,向用户呈现与可编程计算设备相关联的项目的一组引导配置选项,所述呈现所述一组引导配置选项包括:
呈现与所述可编程计算设备相关联的配置引脚设置;
呈现与所述可编程计算设备相关联的选项字节值;和
呈现所述一组引导配置选项;
经由所述图形用户界面,接收从所呈现的所述一组引导配置选项中选择的、针对所述项目的引导配置选项的选择;
基于所选择的所述引导配置选项,生成或更新设置注册表;和
基于所选择的所述引导配置选项和所述设置注册表,生成用于所述可编程计算设备的内容。
2.根据权利要求1所述的方法,其中所述呈现所述配置引脚设置包括读取所述可编程计算设备的配置引脚设置。
3.根据权利要求1所述的方法,其中所述呈现所述选项字节值包括检索与所述可编程计算设备相关联的选项字节值。
4.根据权利要求1所述的方法,其中所呈现的所述一组配置选项是所述配置引脚设置的函数。
5.根据权利要求4所述的方法,其中所呈现的所述一组配置选项是所述选项字节值的函数。
6.根据权利要求4所述的方法,其中所呈现的所述选项字节值是所选择的所述配置选项的函数,并且所述方法包括基于所选择的所述配置选项来选择选项字节设置。
7.根据权利要求1所述的方法,其中:
所述呈现所述一组引导配置选项包括呈现一组引导序列选项。
8.根据权利要求7所述的方法,其中所述呈现所述引导序列选项包括呈现:
将多个处理核中的第一处理核指定为主处理核并且将所述多个处理核中的第二处理核指定为从处理核的选项;
指示所述多个处理核将被顺序引导的选项;
指示所述多个处理核将被并行引导的选项;
针对所述多个处理核中的处理核设置同步协议的选项;
针对所述多个处理核中的处理核设置同步资源的选项;
针对所述多个处理核中的处理核设置引导地址的选项;
设置与所述多个处理核中的处理核相关联的执行上下文的选项;
将存储器分配给主处理核以存储由从处理核执行的代码的选项;
配置主处理核为针对从处理核设置数据配置的选项;
配置主处理核为针对从处理核设置堆栈指针的选项;或者
上述选项的组合。
9.根据权利要求1所述的方法,包括:
向所述可编程计算设备提供所述内容。
10.根据权利要求1所述的方法,其中生成所述内容包括:
基于所选择的所述引导配置选项和所述设置注册表,生成初始化所述可编程计算设备的软件的初始化代码。
11.一种非瞬态计算机可读介质,所述非瞬态计算机可读介质具有配置处理设备以执行方法的内容,所述方法包括:
经由图形用户界面,向用户呈现与所述可编程计算设备相关联的项目的一组引导配置选项,所述呈现所述一组引导配置选项包括:
呈现与所述可编程计算设备相关联的配置引脚设置;
呈现与所述可编程计算设备相关联的选项字节值;和
呈现所述一组引导配置选项;
经由所述图形用户界面,接收从所呈现的所述一组引导配置选项中选择的、针对所述项目的引导配置选项的选择;
基于所选择的所述引导配置选项生成或更新设置注册表;和
基于所选择的所述引导配置选项和所述设置注册表,生成用于所述可编程计算设备的内容。
12.根据权利要求11所述的非瞬态计算机可读介质,其中所述呈现所述配置引脚设置包括读取所述可编程计算设备的配置引脚设置。
13.根据权利要求11所述的非瞬态计算机可读介质,其中所呈现的所述一组配置选项是所述配置引脚设置的函数。
14.根据权利要求11所述的非瞬态计算机可读介质,其中所述呈现所述选项字节值包括检索所述可编程计算设备的选项字节值。
15.根据权利要求11所述的非瞬态计算机可读介质,其中所呈现的所述选项字节值是所述配置引脚设置的函数。
16.根据权利要求11所述的非瞬态计算机可读介质,其中:
所述呈现所述一组引导配置选项包括呈现一组引导序列选项。
17.根据权利要求16所述的非瞬态计算机可读介质,其中所述呈现所述引导序列选项包括呈现:
将多个处理核中的第一处理核指定为主处理核并且将多个处理核中的第二处理核指定为从处理核的选项;
指示所述多个处理核将被顺序引导的选项;
指示所述多个处理核将被并行引导的选项;
针对所述多个处理核中的处理核设置同步协议的选项;
针对所述多个处理核中的处理核设置同步资源的选项;
针对所述多个处理核中的处理核设置引导地址的选项;
设置与所述多个处理核中的处理核相关联的执行上下文的选项;
将存储器分配给主处理核以存储由从处理核执行的代码的选项;
配置主处理核为针对从处理核设置数据配置的选项;
配置主处理核为针对从处理核设置堆栈指针的选项;或者
上述选项的组合。
18.根据权利要求11所述的非瞬态计算机可读介质,其中所述方法包括:
将所生成的所述内容提供给所述可编程计算设备。
19.根据权利要求11所述的非瞬态计算机可读介质,其中所述计算机可读介质的所述内容包括能够由所述处理设备执行的指令。
20.一种计算设备,包括:
显示设备;
存储器,所述存储器在操作中存储计算机指令;和
至少一个处理器,所述至少一个处理器在操作中执行所述计算机指令以:
经由图形用户界面,向用户呈现与可编程计算设备相关联的项目的一组引导配置选项,所述呈现所述一组引导配置选项包括:
呈现与所述可编程计算设备相关联的配置引脚设置;
呈现与所述可编程计算设备相关联的选项字节值;和
呈现所述一组引导配置选项;
经由所述图形用户界面,接收从所呈现的所述一组引导配置选项中选择的、针对所述项目的引导配置选项的选择;
基于所选择的所述引导配置选项生成或更新设置注册表;和
基于所选择的所述引导配置选项和所述设置注册表,生成用于所述可编程计算设备的内容。
21.根据权利要求20所述的计算设备,其中所述呈现所述配置引脚设置包括读取所述可编程计算设备的配置引脚设置。
22.根据权利要求20所述的计算设备,其中所述呈现所述配置引脚设置包括读取所述可编程计算设备的配置引脚设置。
23.根据权利要求20所述的计算设备,其中所呈现的所述一组配置选项是所述配置引脚设置的函数、所述选项字节值的函数或所述配置引脚设置和所述选项字节值两者的函数。
24.根据权利要求20所述的计算设备,其中:
所述呈现所述一组引导配置选项包括呈现一组引导序列选项。
25.根据权利要求24所述的计算设备,其中所述呈现所述引导序列选项包括呈现:
将多个处理核中的第一处理核指定为主处理核并且将所述多个处理核中的第二处理核指定为从处理核的选项;
指示所述多个处理核将被顺序引导的选项;
指示所述多个处理核将被并行引导的选项;
针对所述多个处理核中的处理核设置同步协议的选项;
针对所述多个处理核中的处理核设置同步资源的选项;
针对所述多个处理核中的处理核设置引导地址的选项;
设置与所述多个处理核中的处理核相关联的执行上下文的选项;
将存储器分配给主处理核以存储由从处理核执行的代码的选项;
配置主处理核为针对从处理核设置数据配置的选项;
配置主处理核为针对从处理核设置堆栈指针的选项;或者
上述选项的组合。
26.一种系统,包括:
可编程计算设备;和
一种具有内容的非瞬态计算机可读介质,在操作中使处理器以:
经由图形用户界面,向用户呈现与所述可编程计算设备相关联的项目的一组引导配置选项,所述呈现所述一组引导配置选项包括:
呈现与所述可编程计算设备相关联的配置引脚设置;
呈现与所述可编程计算设备相关联的选项字节值;和
呈现所述一组引导配置选项;
经由所述图形用户界面,接收从所呈现的所述一组引导配置选项中选择的、针对所述项目的引导配置选项的选择;
基于所选择的所述引导配置选项生成或更新设置注册表;和
基于所选择的所述引导配置选项和所述设置注册表,生成用于所述可编程计算设备的内容。
27.根据权利要求26所述的系统,其中所述可编程计算设备包括:
微处理器,所述微处理器在操作中执行所述内容以初始化所述可编程计算设备的软件。
28.根据权利要求26所述的系统,其中所述可编程计算设备包括:
微处理器,所述微处理器在操作中执行所述内容以初始化所述可编程计算设备的硬件。
CN202310105757.6A 2021-08-31 2023-02-13 用于软件和硬件组件配置和内容生成的方法、系统和设备 Pending CN116594606A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US202163239342P 2021-08-31 2021-08-31
US202263310041P 2022-02-14 2022-02-14
US202263310039P 2022-02-14 2022-02-14
US63/310,041 2022-02-14
US17/898,306 2022-08-29
US17/898,306 US20230078144A1 (en) 2021-08-31 2022-08-29 Method, system, and device for software and hardware component configuration and content generation

Publications (1)

Publication Number Publication Date
CN116594606A true CN116594606A (zh) 2023-08-15

Family

ID=85386171

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202310105824.4A Pending CN116594607A (zh) 2021-08-31 2023-02-13 用于软件和硬件组件配置和内容生成的方法、系统和设备
CN202310105757.6A Pending CN116594606A (zh) 2021-08-31 2023-02-13 用于软件和硬件组件配置和内容生成的方法、系统和设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202310105824.4A Pending CN116594607A (zh) 2021-08-31 2023-02-13 用于软件和硬件组件配置和内容生成的方法、系统和设备

Country Status (2)

Country Link
US (3) US20230075227A1 (zh)
CN (2) CN116594607A (zh)

Also Published As

Publication number Publication date
CN116594607A (zh) 2023-08-15
US20230080696A1 (en) 2023-03-16
US20230078144A1 (en) 2023-03-16
US20230075227A1 (en) 2023-03-09

Similar Documents

Publication Publication Date Title
CN106155657B (zh) Uefi固件的方法及其计算机系统
CN105814541B (zh) 计算机设备及计算机设备内存启动的方法
CN111984269B (zh) 提供应用构建服务的方法及应用构建平台
CN108008914B (zh) 一种arm设备中磁盘管理的方法、装置和arm设备
US8069436B2 (en) Providing hardware independence to automate code generation of processing device firmware
US9720703B2 (en) Data driven hardware chips initialization via hardware procedure framework
KR20210002537A (ko) 이종 시스템 온 칩에 대한 소프트웨어 정의 다중 도메인 생성 및 분리
CN107704285B (zh) 现场可编程门阵列多版本配置芯片、系统和方法
US10289785B1 (en) Platform architecture creation for a system-on-chip
US9886287B2 (en) Adaptive device driver method and system
CN104156234B (zh) 启动多核处理器、bootloader大小端模式自适应的方法及装置
US11307833B2 (en) Data driven embedded application building and configuration
US8539214B1 (en) Execution of a program module within both a PEI phase and a DXE phase of an EFI firmware
US9672047B1 (en) Systems and methods for accessing a bootable partition on a serial peripheral interface device
US20170102924A1 (en) Software architecture for embedded systems
CN105786558A (zh) 可升级车辆
CN108139916A (zh) 可编程逻辑设备的多阶段引导映像加载和配置
US10540151B1 (en) Graphical customization of a firmware-provided user interface (UI)
US7873807B1 (en) Relocating a program module from NVRAM to RAM during the PEI phase of an EFI-compatible firmware
CN116594606A (zh) 用于软件和硬件组件配置和内容生成的方法、系统和设备
CN116594605A (zh) 用于软件和硬件组件配置和内容生成的方法、系统和设备
JPH0855042A (ja) データ処理システムをプログラミングする方法
CN115826948A (zh) 用于软件和硬件组件配置和内容生成的方法、系统和设备
US20180357150A1 (en) System for development and emulation of embedded systems
CN111752623A (zh) 显示配置方法、装置、电子设备及可读存储介质

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
CB02 Change of applicant information

Country or region after: France

Address after: Montrouge, France

Applicant after: STMicroelectronics France

Applicant after: STMicroelectronics (Grand Ouest) S.A.S.

Address before: France

Applicant before: STMicroelectronics S.A.

Country or region before: France

Applicant before: STMicroelectronics (Grand Ouest) S.A.S.