Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I'm totally new to AUTOSAR and Arctic Studio. I have read the documentation available on www.autosar.org and now I would like to start playing around, understanding and writing some code.
I also found that only open source free development environment available for AUTOSAR platform is Arctic Studio (please correct me if I'm wrong). So I downloaded and installed it. I followed all the steps at http://212.181.18.149/wiki/Quick-start_Tutorial but unfortunately my build was not error-free.
I read example codes given in the 'examples' folder but didn't exactly get what happening or how to get started with writing even a simple code.
I was wondering if anyone could point me a direction to create a "Hello World" equivalent for AUTOSAR.
Writing a hello world equivalent in Autosar won't help you to familar with the concept.
you require the following things to get a know how about Autosar.
1)you need the MCAL(microcontroller layer),BSW and a simple application in the system.Non autosar component which can be included as Complex device driver is optional.
2)Create a sample application which sends a data 1 or 0 from a swc to any IO driver(preferable DIO)
depending on this you turn an LED on or off based on the corresponding registers
Also check for the supported boards on the Arcore site.
Commasso also provides an open source tool for Autosar but only to its members
AUTOSAR is a platform configurable based in layers.
You need the MCAL layer from the semiconductor company. The BSW+RTE layer created by your company/university or maybe some free plus the RTOS, then you integrate all for your uC, and create your "Hello World" in the APP layer, in some SWC to "print/send/show" the "Hello world" message.
If you don't have RTE or APP layer, you can create a CDD to execute your "Hello World".
The easiest way should be only using the MCAL: put the "hello world" in the main function, just integrate/configure the MCAL, (and the Startup). Check it with the debugger.
Arctic Core supports about a dosen different development boards which are listed in boards/ folder. If you have one of these, you can actually build and run a small project which prints "Hello world" over the UART or blinks a LED.
Walk through this tutorial and introduction to AUTOSAR by one of the biggest 3rd party provides, Vector Informatik GmbH.
The typical "Hello world" in the Embedded and Electronics world would be a blinking LED. Such examples exist for AUTOSAR too, however as has been pointed out you need several tools, libraries, packages, hardware to make this happen. Another way of "Hello world" in AUTOSAR could be a CAN message which you send on the bus, which is a key feature of every vehicle ECU being able to communicate.
There is another version of open source AUTOSAR platform available, How ever it is not completely free, Check this out
https://www.comasso.org/
Sorry this question really indicate that you are not much aware of AUTOSAR, as per AUTOSAR there is no UART module either.. of course blinking a LED is possible using DIO module along with PORT module.
I will try to explain as much as I can, please correct me if I am wrong and I am working in AUTOSAR development from last 5 years..
AUTOSAR is a collection of different requirement for developing ECU's in automotive industry.
Its some what open to all also, you can get all latest requirement on it from http://www.autosar.org/
Its total number of components or modules depends on your application and ECU.
Its architecture is in such a way that you can develope any one or few module or component and can use it with any other AUTOSAT compatible module / components. ( if both designed for same AUTOSAR major versions).
BR
Jerry James
Related
I recently purchased Micro:Bit. I've seen that micro-python and bluetooth cannot be used at the same time due to memory capacity.
Does anyone know if I would be able to build a decent application using the javascript block programming?
The app basically has to do the following:
Read data from acceleretometer.
Acumulate some accelerometer data.
Send the information to another device connected via bluetooth.
Yes, you should be able to write a program for the microbit that does this. the official documentation describes the services that are available. I also found an example which suggests that there is an app which you can use at the phone end if that's relevant to your application.
The micropython restriction is a combination of the BLE protocol stack requiring 12 kB of RAM, and python being interpreted (so having a high RAM requirement).
You can chose the block version or test javascript - and should be able to write reasonably complex programs (even if the text entry might be best done in an editor). As a final fall-back, you can fall back on C/C++ using the microbit DAL (which seems to be built on top of the mbed offline toolchain).
When use wcdma module ,we should use ppp protocol to communicate with ppp server. But I can't see any file about ppp in NOKIA N9's filesystem.
So,How N9 use linux(harmattan) to dial to PPP server and then linked to internet ?
This question seems more suited to SuperUser.com - it is not related to programming. See the StackOverflow FAQ for more information on what kind of questions you can ask here.
Regardless of where you post a question, it would help all of us if you provided more context, preferably using full sentences. As it stands now, it is difficult to tell what your actual question is. Do you want to connect a computer to the internet using the phone? Do you want to use the phone itself to access the network?
It is also difficult to understand what the problem is. You should at least tell us what you have tried and where that failed.
Unless you pay more attention to your question, you will not get any meaningful answers. You should probably have a look here for a guide on asking questions.
You should keep in mind that hardware-related questions can usually be answered only by people that have access to that particular device. With the amount of information you are providing this question boils down to "How do I connect to a PPP server on Nokia N9?", which is impossible to answer, unless one has access to that particular phone model.
By providing more context, such as describing how the firmware in that phone is setup, you allow people that have more general experience on Linux and embedded devices to help you.
Since I do not have that particular device, I will take a shot in the dark and offer a few alternatives, in order of decreasing probability:
You may need to install additional packages. I believe that MeeGo uses Debian-style packages and the PPP-related packages may not be installed by default. You should have a look at your software repositories.
The PPP support does not have to be a module - it can be included in the main kernel binary. pppd could also be replaced by a custom binary, although that is not very common, even on embedded devices.
Are you absolutely certain that your current software configuration does not support PPP? How are you searching in the filesystem for PPP-related files? What are you expecting to find? Does using the phone UI to connect work?
There is a very slim chance that the default firmware does not support PPP at all - in that case you may have to install custom packages or even replace the firmware itself with a custom version.
I need to develope a NFC chipset evaluation tool. i need to connect the NFC board (that includes the NFC chip) to PC (running in Windows). then i need to get all the data of the chip to my PC using a software tool. this is the first time i am trying to do it. i need some advises regarding the first steps. i suppose, i would use a TCP-IP protocol to connect with the chipset. but how exactly it would work? for example, there is a USB-tester... http://www.vconsole.com/client/?page=page&id=13. my tool will be similar to this.
i also need to validate in the low level entry, for the framework.
i need to have a process description for the development of the tool. what are the steps?
thanks for your advices.
You cannot use TCP/IP over a USB/I2C connection. Most test boards come with software that you can use to connect to the board. What you are asking is a very broad question. If you are trying to write your own question, or hook it up to Excel to run tests with, you are progressing down a very time consuming path. People here are willing to help you figure out a question you are stuck on, but not to do all the hard work for you.
Like I said, you are starting on a BIG project, and will need to research A LOT. Then I'd recommend asking specific questions rather than very general questions.
As far as where to start, I'd start by writing down everything you want to know, and then start figuring out how to get each individual piece.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
I have a Samsung TV with connected via optical output to my DTS sound system.TV has ARM CPU and an embedded linux operating system. It comes with an embedded media player.But internal media player doesn't pass DTS audio to my sound system. it only passes-though AC3 and other formats. I want to hack TV's firmware to pass-though DTS audio to my sound system.
What are the books, learning resources etc. to start this kind of hobby project ? I have never programmed on embedded platform. What should I know before the start ? For example Should I know audio programming, electronics, Linux Kernel, C Programming ? Any recommendation would be helpful.
Actually there is a whole dedicated sourceforge project related to firmware hacking on Samsung TVs called SamyGO. But When I asked one of main firmware hacker in this site, I didn't get a reply from him. So I thougth someone here can answer to my question.Thanks..
UPDATE :
How much electronics knowledge should I have for this kind of job ? (I have a C.S degree and basic knowledge about electronics, logic design etc.). Should I be a linux kernel or C expert ?
Actually I have always wondered how embedded device hackers like George Hotz gain this kind of knowledge.Because it is a closed system, they don't have any documentation, how can they do this? Do they learn it from school?(I don't think so). If they do, What do they study? Which books do they use? If they don't, how ?
I came across this excellent blog post on Reverse engineering firmware for Linksys router,
http://www.devttys0.com/2011/05/reverse-engineering-firmware-linksys-wag120n/
It explains in detail how to reverse engineer the firmware, get to the file system in clear steps. If you can follow through the steps, you would get a really good insight into what it takes to hack a firmware.
I don't think you require lot of electronics knowledge to hack a firmware, basic 101 level knowledge would suffice. If you understand basic OS and systems in general then you should be able to work your way through.
Hacking an undocumented system is nowhere a trivial task. You definitively should learn C and practice embedded programming and a good knowledge about electronics will help a lot (you'll have to look at the circuit and guess how it works, if you can't find any docs on google).
My advice is: get some (documented) ARM board to start hacking on (beagleboard/pandaboard comes to mind). You'll learn a lot about Linux, C, Kernel development and even electronics if you want to.
Trying to dive directly on a TV system will probably be very frustrating for you.
UPDATE:
At the electronics side, you don't need to be an electronic engineer. Study a lot of digital electronics and understand how CPU's, buses and commom peripherals work. Most of the time you can look at any chip code and search for it datasheet, but sometimes they're designed specially for one device, or have no identification at all. In this case, you'll need a logic analyzer to reverse engineer it and try to understand how to "talk" to it.
You can learn CS and electronics from books, but real reverse engineering can only be learnt by experience (of course, learning how others do things helps a lot).
Go on and open devices you find interesting, try to understand how they work and change things on it. You'll for sure burn some of them (begin with the cheaper ones), but it's the best way to learn how to hack devices.
Just take care to not die while messing with high voltage devices (and LCD TV do have some HV parts)
Suitable development boards to consider, with very active communities, i.e. easy to get help if you are stuck :-)
http://www.arduino.cc/
http://beagleboard.org/
Start with them to learn about embedded systems, before you move on the more difficult tasks
Yes,C language knowledge is important.
First try and learn Raspberry Pi then jump into Adruino.
You could find so many communities for these in facebook and google plus join and involve yourself.
Then you can learn so many hacks
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I was always attracted to the world of kernel hacking and embedded systems.
Has anyone got good tutorials (+easily available hardware) on starting to mess with such stuff?
Something like kits for writing drivers etc, which come with good documentation and are affordable?
Thanks!
If you are completely new to kernel development, i would suggest not starting with hardware development and going to some "software-only" kernel modules like proc file / sysfs or for more complex examples filesystem / network development , developing on a uml/vmware/virtualbox/... machine so crashing your machine won't hurt so much :) For embedded development you could go for a small ARM Development Kit or a small Via C3/C4 machine, or any old PC which you can burn with your homebrew USB / PCI / whatever device.
A good place to start is probably Kernelnewbies.org - which has lots of links and useful information for kernel developers, and also features a list of easy to implement tasks to tackle for beginners.
Some books to read:
Understanding the Linux Kernel - a very good reference detailing the design of the kernel subsystems
Linux Device Drivers - is written more like a tutorial with a lot of example code, focusing on getting you going and explaining key aspects of the linux kernel. It introduces the build process and the basics of kernel modules.
Linux Kernel Module Programming Guide - Some more introductory material
As suggested earlier, looking at the linux code is always a good idea, especially as Linux Kernel API's tend to change quite often ... LXR helps a lot with a very nice browsing interface - lxr.linux.no
To understand the Kernel Build process, this link might be helpful:
Linux Kernel Makefiles (kbuild)
Last but not least, browse the Documentation directory of the Kernel Source distribution!
Here are some interesting exercises insolently stolen from a kernel development class:
Write a kernel module which creates the file /proc/jiffies reporting the current time in jiffies on every read access.
Write a kernel module providing the proc file /proc/sleep. When an application writes a number of seconds as ASCII text into this file ("echo 3 > /proc/sleep"), it should block for the specified amount of seconds. Write accesses should have no side effect on the contents of the file, i.e., on the read accesses, the file should appear to be empty (see LDD3, ch. 6/7)
Write a proc file where you can store some text temporarily (using echo "blah" > /proc/pipe) and get it out again (cat /proc/pipe), clearing the file. Watch out for synchronisation issues.
Modify the pipe example module to register as a character device /dev/pipe, add dynamic memory allocation for write requests.
Write a really simple file system.
An absolute must is this book by Rubini. (available both as a hardcopy or a free soft copy)
He gives implementations of several dummy drivers that don't require that you have any hardware other than your pc. So for getting started in kernel development it's the easiest way to go.
As for doing embedded work I would recommend purchasing one of the numerous SBC (single board computers) that are out there. There are a number of these that are based on x86 processors, usually with PC/104 interfaces (electrically PC/104 is identical to the ISA bus standard, but based on stackable connectors rather than edge connectors - very easy to interface custom hardware to)
They usually have vga connectors that make it easier to do debugging.
For embedded Linux hacking, simple Linksys WRT54G router that you can buy everywhere is a development platform on its own http://en.wikipedia.org/wiki/Linksys_WRT54G_series:
The WRT54G is notable for being the first consumer-level network device that had its firmware source code released to satisfy the obligations of the GNU GPL. This allows programmers to modify the firmware to change or add functionality to the device. Several third-party firmware projects provide the public with enhanced firmware for the WRT54G.
I've tried installing OpenWrt and DD-WRT firmware on it. You can check those out as a starting point for hacking on a low-cost platform.
For starters, the best way is to read a lot of code. Since Linux is Open Source, you'll find dozens of drivers. Find one that works in some ways like what you want to write. You'll find some decent and relatively easy-to-understand code (the loopback device, ROM fs, etc.)
You can also use the lxr.linux.no, which is the Linux code cross-referenced. If you have to find out how something works, and need to look into the code, this is a good and easy way.
There's also an O'Reilly book (Understanding the Linux Kernel, the 3rd edition is about the 2.6 kernels) or if you want something for free, you can use the Advanced Linux Programing book (http://www.advancedlinuxprogramming.com/). There are also a lot of specific documentation about file systems, networking, etc.
Some things to be prepared for:
you'll be cross-compiling. The embedded device will use a MIPS, PowerPC, or ARM CPU but won't have enough CPU power, memory, or storage to compile its own kernel in a reasonable amount of time.
An embedded system often uses a serial port as the console, and to lower the cost there is usually no connector soldered onto production boards. Debugging kernel panics is very difficult unless you can solder on a serial port connector, you won't have much information about what went wrong.
The Linksys NSLU2 is a low-cost way to get a real embedded system to work with, and has a USB port to add peripherals. Any of a number of wireless access points can also be used, see the OpenWrt compatibility page. Be aware that current models of the Linksys WRT54G you'll find in stores can no longer be used with Linux: they have less RAM and Flash in order to reduce the cost. Cisco/Linksys now uses vxWorks on the WRT54G, with a smaller memory footprint.
If you really want to get into it, evaluation kits for embedded CPUs start at a couple hundred US dollars. I'd recommend not spending money on these unless you need it professionally for a job or consulting contract.
I am completely beginner in kernel hacking :) I decided to buy two books "Linux Program Development: a guide with exercises" and "Writing Linux Device Drivers: a guide with exercises" They are very clearly written and provide good base to further learning.