3,984 karma · joined May 29, 2010
Additionally you need to control 5000 converters without getting oscillations etc. (probably over glas) Also they will probably need a lot more space.
So i can just write, save the file and everything is nice :)
In our case it would probably not have helped. We had a fixed old mcu board where the functionality grow over the years. We were fighting over bytes...
This was a 16-Bit processor and the C-compiler had a "funny" bug. If you had a struct with 3 8Bit Values in a row and a 16Bit Value afterwards it would overlap the 8Bit Value with the 16Bit value:
struct {
int8 a;
int8 b;
int8 c;
int16 d;
}
In this case the variable c and d would have the same address. This was on a cpu where we didn't had a debuger (not enough memory left for it), we only had a serial port for debuging.This also needs a lot of time and effort to comprehend!
But expect it to take some time. (10 Videos, most are around 1h, i needed to pause several times and think or try something out)
The v850 has 1...256kBytes of RAM. Let's assume 256kBytes of RAM. Then lets assume they have a Stack of 16kByte. => There are only 983 Bytes of free stack. Then a function call with 5 Int parameters and 10 Int variables needs around 64Bytes. => Only 16 recursive calls are needed to have a stack overflow.
Further because the critical data structure in the os are not secured the os will have no idea that something is wrong.
(In several projects we had to have our critical data 2 times in RAM, once normal and once inverted. In a critical project we even had to do all computations two times, once with the normal data and once with the inverse data. This way you will also find some bit flipps of the ALU, RAM etc.)
edit: In the slides i found that the stacksize is 4kByte => only 245Bytes are free! So you can't make many recursive calls!
Then on the University the education shifted to a very theoretical approach.
I really like the idea of circuits.io. Here some things i noticed during a short test. (Probably you already know all these things)
Some kind of an "Push Obstacle" Layout mode would be nice. (Move the obstacles when you try to lay down an wire) Or at least a "Walk around Obstacle".
Have an adjustable keymapping. (i prefere to have zoom on "A" + "D", pan on "W", start routing on "S" etc. )
I wasn't able to change the layer (| is Alt+7 for me which your app doesn't seem to recognize)
Add more layer and Polygons/Planes. (Our standart pcb has 4 Layers. GND, VCC, 2 times routing)
The device search is just lame.
It would be nice to be able to edit a project as a team. (Have a history of changes and who made this changes, add a possible to review the changes, etc.)
As an example the TDD study you mentioned compared the defect rates of a new software developed once with TDD and once with Code Review. At work we do TDD mostly to help us developing (faster feedback if the code does what i want, running it on the target needs 10+min), to have an example how the code should be used and to now that a refactoring broke something unrelated.
If it helps us with a refactoring or reduces the defect reduction rate that is a nice benefit but not the main reason why we use TDD.
So it depends on what you do if a study is applicable or not.
I came from a background of a lot of Embedded C and some Ruby. For me Java had more a feeling like C. Very clumsy and needs a big amount of code to describe something.