Getting started in Firmware development [closed] - language-agnostic

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 9 years ago.
Improve this question
I am a software development guy. Lately I was thinking of trying out some firmware development, as the company I work for is trying to enter that domain.
I have many questions regarding firmware devlopment - like:
What are the tools used - like IDE?
In which language is most of the code written in?
How to port the code into microcontroller?
How to code for different microcontrollers?
How to determine things I would need for building a specific application(choosing the microcontroller etc.)?
Anything else I should know about and where do I start? Sorry if this question is too basic, but I could not find out any satisfactory answers elsewhere.

Most microcontrollers have decent C compilers so are best coded for in C, although you might need to delve into assembly routines for occassional high performance routines. The choice of microcontroller is usually determined by the hardware demands, on board peripherals, performance and cost constraints.
You wouldn't generally be porting code from a Windows/Linux/Mac environment to a microcontroller one; you would generally be writing directly for the microcontroller, so strictly the compiler is a cross compiler - compiling on your PC to run on a different processor. You typically get debuggers, emulators and full editor capabilities in the IDE, so its a similar experience to writing code in a PC environment, but it runs slower, and has to be downloaded to the target hardware or emulated to be tested.
A great authority to start reading about embedded development is Jack Gansle and his firmware handbook. Also www.embedded.com for general articles.

Related

What are the key differences between IDA and x64dbg? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
IDA pro ,x64Dbg, olldbg & windbg are used to Reverse Engineering purposes(as a Dissembler) and debugging.
What are the main differences among them? when to use each?
It's quite hard to give an answer that is not opinion-based. Trying to stay factual:
OllyDbg and x64Dbg falls roughly under the same category. Their main strength is debugging without symbolic information (although they can also do debugging with symbolic information). OllyDbg (closed source) hasn't been maintained since a long time now and is limited to x86 32-bit. On the other hand x64Dbg is actively maintained,open source and can handle x86 and x64. Both supports plugins.
Windbg is mainly a symbolic debugger (although obviously it works without any symbols). Being maintained by Microsoft it is very powerful when symbols are available. It supports plugins (in C or C++), scripting (it has its own scripting language but it also supports officially JavaScript and a third-party python scripts loader) .NET debugging and can do Kernel debugging (in this aspect it is the de facto Kernel debugger on Windows systems). In its latest version it also supports TTD (Time Travel Debugging).
IDA main strength is that it's an interactive disassembler. You can "interrogate" the binary (more precisely, the database generated from the binary) in many ways from python scripts. It also supports debugging by itself or through other engines (gdb or windbg engines for example).
Notable other professional dissassembler/debuggers are Binary Ninja (not free) and Ghidra (open source)

Thoughts on Chromium based desktop app? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
Has anyone tried OpenFin? What are its pros and cons?
In terms of Development effort, stability, development support, maintenance, performance, memory footprint.
I am part of the OpenFin Dev team and I have to say in terms of Development effort we are always improving our development tools, and have a large collection of example code that tackles some of the popular scenarios, we also have a yeoman generator that makes it super easy to get started: https://github.com/openfin/generator-openfin
In regards of stability, we ship a mayor release twice a year and you can chose to stick to a particular version at an application level. each deployed application can choose a particular version and it only takes a change in the server to have the clients updated on next app start.
Development support is highly active and we will work with you to resolve any issues. as I mentioned above we have created example code for popular scenarios.
Maintenance, would be similar to any web application without the need to support multiple browser versions, additionally we provide API's to create Windows installers for any OpenFin application.
Performance, you get all of the benefits of the V8 engine for JavaScript and the Blink layout engine. you also get API calls to monitor CPU and Memory.
Memory footprint, The OpenFin Runtime will create processes for each application and has several internal processes of its own, the actual footprint depends on what features you are using.
You can see a feature comparison between OpenFin and other solutions here https://openfin.co/runtime/compare/

desktop app gui design - best tool [closed]

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 4 years ago.
Improve this question
i'm working on a project - an office information management system,
the database is a MySQL database, and now i have to build the front end GUI.
already I drawed a model of a screen example with PP (from total of 15 in my system),
my question is how to build the GUI? which tool/language is simple and easy to learn?
i thought about C++ but i no experience with it...
the information have to be retrived from the DB, read, write, queries, and so on.
will be happy to read your thoughts
![Powerpoint initial model][1]
The implementation that should come to your mind is one in a programming language you know. You can program this in many languages:
Visual Basic. If you already know it, this can be the fastest. Start the IDE and put together a forms project for you DB app.
Java. Many people know Java and you can pick it up in a matter of days and you're likely to have use for it in several projects. A Swing or AWT project that you build in Eclipse or Netbeans with the DB driver for the DB connection will work.
Python is also a popular choice. You can use the library tkinter to make quick GUIs.
C/C++ will also work. But if you don't know C/C++ already you might want to build GUIs with higher abstraction.
A web application with CSS/JScript using some Javascript framework to do DB i/o. But from your question it definitely seems that you want a desktop app.
Use this project to learn a new language. You might not know Lua, Haskell, Clojure, Scala, Kotlin, Fantom, Erlang or some other tool that you don't know how to connect to MySQL with, then it'll be good practice to do so in a new language.
Any of the above will work and if I faced this project I would use tool of the above.

How do you estimate a EAI project using Function point? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 2 years ago.
Improve this question
How do you estimate a EAI project using Function point?
FP analysis is inappropriate for integration projects of any sort as it presupposes that you can specify the application up-front. Most of the work in any integration project of non-trivial complexity is reverse-engineering the nuances of the environment. Typically the environment will not be exhaustively documented in the sort of cases you would expect to use an EAI system in.
By the time you have actually done this level of reverse engineering to the point of having a complete specification you have done most of the work in the project - the actual development is fairly short and sweet by comparison. Therefore the function point analysis is only providing an estimate for a small part of the system.
As an aside, much of the work I do is data warehouse systems in Commercial insurance companies, where extensive prototyping and reconciliation exercises to produce detailed specification documents are actually quite appropriate to the environment. Typically this takes longer than actually developing the production system as most of the data issues are resolved in the prototyping work. EAI systems have a similar class of implementation issues.
Well given that FP counting is based on storage and end user interface, not sure if its even meaningful for EAI (from what little I remember).
I would say you can't, at least not in a useful way. FP counting is generally viewed as a dubious practice of varying accuracy, doing it to an integration project would just add more fuzzyness.

Simple Interpreted Language Design & Implementation [closed]

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 7 years ago.
Improve this question
I need some resources for implementing a simple virtual machine and interpreted language. Something that is pratical is most useful. I have read the Virtual Machine Implementation book and found that it is quite old and doesn't represent the vms I see today. Also if someone know of a fairly simplistic language that would be great as well.
check The implementation of Lua 5.0
You don't say if this is for a new project, to work with an existing project, for learning, or what target environment, language, and OS you're using.
If you want to learn about implementing your own VM and scripting language, get the book Game Scripting Mastery. Despite its title, it is actually about implementing your own virtual machine and scripting language. The source code is for Win32, but the concepts can be applied to .Net or Linux.
As a bonus, when you're done you will have a playable, scriptable, 2D adventure game.