AUTOSAR Service software component type - simulink

I'm really confused about the AUTOSAR Service software component type.
It is possible to create Atomic software component like application SWC using AUTOSAR Blockset tool, but what about Service software component?
In the AUTOSAR software template documentation it is mentioned that Service software component is configured on the ECU configuration phase.
My question is:
What kind of tools are used in ECU configuration phase?

The Simulink AUTOSAR Blockset allows you to develop ApplicationSwComponents and related higher level parts of SensorActuator-, EcuHwAbstraction-SwComponents and ComplexDrivers. These are mostly above the RTE, or abstracted from the actual HW and this correlates mostly to developing on the level of the "Virtual Function Bus".
The SW components are then later mapped to ECUs (SwcToEcuMapping) and are finally integrated into an ECU SW, including MCAL, HwAbstraction and Service components, which are actually configured with Tools like EB Tresos Studio, ETAS ISOLAR-A/B and Vector Davinci Configurator according to SystemDescription/SystemExtract/EcuExtract and the SW-Component-Descriptions.
Therefore, in Simulink AUTOSAR Blockset, there is no need to actually develop an ServiceComponent, since they are actually part of the AUTOSAR BSW below the RTE (e.g. BswM, StbM, Dem, Dcm, Com, LdCom).

Related

Would you consider a text editor such as vi a system program or an application program? Justify.

How i Can identify The Vi Editor is a Application Software or System Software
System software and Application software
Software is basically classified into two categories.
System Software and Application Software.
Where System Software acts as an interface between Application Software and hardware of the computer. The Application Software acts an interface between user and System Software. We can distinguish System Software and Application Software on account of the purpose of their design. The System Software is designed to manage the system resources and it also provides a platform for Application Software to run. On the other hand Application Software are designed for the users to perform their specific tasks.
So vi is editor created for UNIX Operating System. It is type of Application Software.
Priyank has nicely clarified the difference. But I would like to add a small point here if you have a confusion in deciding the type. Many softwares have both the features; interaction with hardware(system software style) and interaction with the user(application software style). There is a simple way to distinguish between the two: the more it interacts with the hardware and the more it focuses on extending hardware functionality or system services, that are used by other programs, the more it fits into the system software category. In my opinion Text editor is more of an application type software.

PL PS communication on the zynq board

I am working on an application that turns on a Zynq board.
I develop the C code that should runs on the ARM host and implement and synthesized the code for the PL. I have data transfer between the PL and the PS.
But, I don’t have the board. And I want to test my programs and to evaluate my system (resources, throughput and latency, …).
Is there any way to have this? Any simulator? How could I see the value of the data that transit between the PL and the PS.
I only have the vivado environment with sdk.
Thanks
I want to say that I didn't try it yet, but the answer can be in using AXI Bus Functional Model (BFM):
Xilinx provides AXI BFM to verify functionality of AXI masters and AXI slaves with AXI3, AXI4, AXI4-Lite, and AXI4-Stream interface
The AXI Bus Functional Models (BFMs), developed for Xilinx by Cadence Design Systems, support the simulation of customer-designed AXI-based IP. AXI BFMs support all versions of AXI (AXI3, AXI4, AXI4-Lite and AXI4-Stream). The BFMs are delivered as encrypted Verilog modules. BFM operation is controlled via a sequence of Verilog tasks contained in a Verilog-syntax text file. The API for the Verilog tasks is described in the AXI BFM User Guide.
The AXI BFM can be used to verify connectivity and basic functionality of AXI masters and AXI slaves with the custom RTL design flow. The AXI BFM provides example test benches and tests that demonstrate the abilities of AXI3, AXI4, AXI4-Lite and AXI4-Stream Master/Slave BFM pair. These examples can be used as a starting point to create tests for custom RTL design with AXI3, AXI4, AXI4-Lite and AXI4-Stream interface. The examples can be accessed from CORE Generator or standalone web download.
The AXI BFM can also be used for embedded designs using Xilinx Platform Studio (XPS). The AXI BFM is available as part of the CIP wizard to create an AXI-based IP with AXI BFM solution. The AXI BFM is also provided as separate pcores that can be accessed from the XPS IP catalog.
There are no evaluation licenses for AXI BFM IP.
Key Features & Benefits
Supports all protocol data widths and address widths, transfer types and responses
Transaction level protocol checking (burst type, length, size, lock type, cache type)
Behavioral Verilog Syntax
Verilog Task-based API
Delivered in ISE, enabled by a Xilinx-generated license
Verilog and VHDL example designs and test benches delivered standalone or through CORE Generator for RTL design
Integrated with XPS as a pcore or as an option with CIP wizard
Supported Simulators: Aldec Riviera-PRO, Cadence Incisive Enterprise Simulator, ISE Simulator, Mentor Graphics ModelSim and Synopsys VCS
I hope this helps.

How to use CKO_VENDOR_DEFINED in pkcs#11

Has anyone used CKO_VENDOR_DEFINED to create a key or a data object?
There is hardly any documentation (including the mother load from Oasis) about how to do it, or which attributes are applicable/not-applicable.
Unfortunately, but hopefully understandably, I can not describe exactly what I am trying to do.
But the gist of it is that I need to be able to have a bit more attribute<=>mechanism flexibility with our kind of keys and the ability to modify a key on the token.
I'd really appreciate any pointers or help.
You can take a look at OpenPGP extension to PKCS #11 where CKC_OPENPGP is defined as:
#define CKC_OPENPGP (CKC_VENDOR_DEFINED|0x00504750)
I've seen also commercial implementations introducing CK*_VENDOR_DEFINED extensions this way.
(AFAIK) vendor defined object types must be implemented inside the HSM unit firmware (in theory, the host-side cryptoki library could introduce some additional "virtual" object types, but this probably would not make any sense as the overall security model would stay the same -- because the host-side cryptoki code runs in an untrusted execution environment).
If you need more control than provided by the vanilla PKCS#11 you have some choices:
Use existing vendor extensions -- some vendors add their own extensions designed to solve common use-cases. Read your documentation or contact your vendor directly.
Implement a custom firmware -- some products allow the end-user to run a custom code inside the HSM device. You can implement your model this way.
SafeNet ProtectServer:
SafeNet ProtectServer HSMs offer a unique level of flexibility for
application developers to create their own firmware and execute it
within the secure confines of the HSM. Known as functionality modules,
the toolkits provide a comprehensive facility to develop and deploy
custom firmware.
Thales nShield:
Most nShield HSMs also support the unique ability to host critical
applications within the hardened security boundary, so you can
establish tamper-resistant business processes in addition to
protecting cryptographic operations.
Utimaco CryptoServer:
The CryptoServer Software Development Kit (SDK) is the professional
development environment for all Utimaco Hardware Security Modules. It
enables integrators and end-users to create specific applications,
e.g. proprietary algorithms, custom key derivation procedures or
complex protocols that run in the tamper-proof environment of the
CryptoServer Hardware Security Module. As the SDK provides full access
to the Utimaco base firmware, custom firmware modules can be developed
in a very short time frame.
Use some other technology -- do not use HSMs at all and leverage some other secure device. Specifically smartcards might be a viable alternative as some of them can be programmed (at least Java Card or MULTOS ones). On the other hand the performance and range of supported algorithms is quite limited here (depends on your use-case).

What does a "framework" actually mean?

Can anybody tell me in SIMPLE words, what does it mean when we say "I want to build a framework for blah..blah"
From Software Framework on Wikipedia:
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software. A software framework is a universal, reusable software platform used to develop applications, products and solutions. Software frameworks include support programs, compilers, code libraries, an application programming interface (API) and tool sets that bring together all the different components to enable development of a project or solution.
Thank you

What is the difference between an OS and a Framework?

I recently posted a question about Azure... is it really an OS? I understand the technical details, and I got a lot of fuzzy answers... I really want to know... what do you think is the difference between an OS and a Framework?
Just for reference, Azure will be built on top of Hyper-V servers and the virtual machines will be running vanilla Windows Server 2008. It will run services that creates a cloud on top of the many virtual machines which is called Azure. Windows is calling Azure an OS.
I am trying to understand how to define the difference between an OS and a framework.
Operating System: The infrastructure software component of a computer system
Framework: A re-usable design for a software system (or subsystem).
By these definitions it seems to me, that an operating system can be built using a framework, and a framework can be built to interact with an operating system.
Singularity is an example of an experimental OS that is built using managed code.
Framework is a very broad term, it can be used to describe many types of subsystems. It could even describe an operating system.
Operating System is more specific, it implies facilitation of interaction with a computers or group of computers hardware layer, through the use of human user interfaces. I think Azure fits this description.
It's up to marketing - I don't think the terms have a definite meaning any more.
Is a JVM a framework?
What if it's running on a raw uC or even an FPGA - is it an OS?
An OS is the thing that directly interfaces with the machine, be it virtual or real. It has to expose syscalls that handle input devices, output devices, sound, networking, and all the other things that we take for granted these days. It also often provides some kind of UI which uses these services to make it easy to use/useful for an end-user. It needs to have device drivers to work with video cards, sound cards, etc. (Once again, these can be virtualized).
A framework is... something built on top of the OS. It, too, exposes an API, but they are often not so low-level as the one the OS exposes.
frameworks provide api contracts that oses usually don't - meaning they sit atop the os, hide and manage the differences, and consequently give you that platform independence goodness that can broaden our target audience
A framework thought to be as a development environment,a helping platform for further developments and you can work additively to create some other application using components of framework, while OS is system software is an environment to operate a system.