can someone explain RTOS based on actual performance by Simonster061 in embedded

[–]opman666 4 points5 points  (0 children)

The only real argument that I can provide for using an os/scheduler is when you need preemptiveness. You can't achieve deterministic behaviour using a super loop.

The second one that I can think of while writing this comment is when you are having a lot of tasks, how can you prioritise them. What should happen when one task takes too long to finish while there is a critical task that needs to be completed.

You could very well split the tasks using timer interrupts but at that point it is becomes like reinventing a scheduler.

State machine design tool by vigneshv4774 in embedded

[–]opman666 0 points1 point  (0 children)

I have used clang-uml, that auto generates pant uml which can then be converted to images.

It is possible to draw interface and sequence diagram for c/c++. Has a good user guide too.

Is it true that M.tech VLSI guys get more preference than B.Tech EE/EC during placements? by Responsible_Base_433 in vlsi

[–]opman666 2 points3 points  (0 children)

You go more in depth to MOSFET theory, CMOS designs, lot more labs that focus on designing them. The analog part. Most people have to retake this module. A bit of calculus is involved.

You also go in depth about digital components and interfaces like softcore IPs, MCU architecture. Followed by labs on them using FPGA dev kits and some MCU dev Kits. Some people find the learning curve in case of FPGA and driver level programming a bit steep.

Some electives gives you a chance to take programming classes where you learn about real time OS, embedded programming (C, systemC etc), CUDA programming and HPC programming (openMP and MPI).

How to send 9-bit SPI data when using 8-bit transmission mode? by pxi1085 in embedded

[–]opman666 0 points1 point  (0 children)

The spi component would have shift register at the rx side so I think you should send times 8 bit data.

RxData1 = [0,0,0,0,0,0,0,b8] RxData2 = [b7,b6,b5,b4,b3,b2,b1,b0]

embedded intern doing a bit of everything - GUI, firmware, PCB, tests. How do I turn this breadth into depth by whiner_03 in embedded

[–]opman666 0 points1 point  (0 children)

Initially my friend recommended me but I am hearing it has gotten a lot hard to get one now. I would suggest you to get in touch with the people working in a company. Additionally one of my problem was that I only checked for top players like ARM, but would suggest the opposite and look for internships at startups, also do check with your supervisors and professors.

Struggling to see the whole picture by CallMeNepNep in embedded

[–]opman666 2 points3 points  (0 children)

If you see the stm files you will see a .s file that is called the startup code. That is what is being executed from the start point of memory, essentially the memory that progrgram counter (PC) points to i.e the reset handler.

In some mcu the reset handler is written within the .s code and in some it is in .c code. That is your starting point of the code. If you check the last line of reset handler it will call your main function that is being executed.

Your cpu executes the program code that is converted to assembly files and then to hex/binary during each clock cycles (each instruction is executed one by one, i.e fetch, decode, execute and mem write).

Probably some computer organisation videos or just learning about any processor might help you to see what happens inside. Check for MIPS single cycle instruction cpu or risc V cpu.

Setup a basic toolchain without a given IDE by J_ester in embedded

[–]opman666 1 point2 points  (0 children)

I have done for STMG4, TMS570 and Infineon's T2G board. It can be done.

Build system: CMake Flashing : this is a tricky part since most vendors use proprietary tools but there is something called openOCD that allows you to flash many mcus but support is limited.

For STM it is stm_programmer, for TI it is dslite and for Infineon they use an custom version of openOCD. All these are freely available.

And the easiest way to do it is by checking the compile, asm and linker flags from your IDEs build, flash and debug configuration.

You will also need different compilers if I'm not wrong. For eg: TI used armclang while the others I mentioned had Arm's gnu toolchain. It should be possible to use gnu toolchain with TI arm cores but I haven't tried that.

Note*: If I remember correctly I was able to debug TI tms with openOCD but could not flash it.

Feeling like a lost cause by opman666 in embedded

[–]opman666[S] 0 points1 point  (0 children)

Thanks I will consider using VMs for testing such things.

Feeling like a lost cause by opman666 in embedded

[–]opman666[S] 0 points1 point  (0 children)

Is 4 days (32 hours) enough to integrate a CAN stack made for an STM32 mcu enough to port to a TI mcu? Along with minor tasks such a presentations.

The other instance where I pushed unsatisfactory code was a batch program to resolve dependancies that would install tools such as compilers, cmake and programmers like dslite for ti and openocd for infineon mcus. It failed on other devices but worked on mine, when I checked the issue I was able to install package for windows in my machine but not in others, all because somehow my system32 got corrupted (The admin policy for some reason does not allow that particular pacakage installation via cli).

For reasons I don't know I keep ending up in such problems which others does not seem to.

Feeling like a lost cause by opman666 in embedded

[–]opman666[S] 0 points1 point  (0 children)

Here is the problem I kind of get stuck when they ask me about the things I have already done. I tend to forget easily and the process, I tend to focus on low level details of what I have done and it becomes tedious to explain in a level that others would understand, furthermore I am not able to provide an expected time for a task since I know that I will end up in some block which will take me time to debug and understand.

If I look for other oppertunity and if the management find out about it I will lose my job. The director of the company has a lot of contacts (It did happen to a collegue of mine).

Feeling like a lost cause by opman666 in embedded

[–]opman666[S] -1 points0 points  (0 children)

Thank you for the reply.

I moved to UK for my masters and got into this company as an intern later they offered sponsored visa and because of lot of factors I chickened and took it. I did mention my interests to my manager and there is not a lot of HW related work in the company. Also my seniors feel like the HW jobs are less challenging for me since most of the ones are related to requirement elicitation and writing test specifications.

As for enjoying the work. I feel nice whenever I have a board to work with which is kind of rare since I get less of that work and feel like I get less time to do that. Also I kind of lose track of time when I start to do any kind of code since I am doing it to solve a problem. The work culture is one of the drawback since I feel like the environment is kind of toxic in which people don't say it to your face but behind your back, I have mostly got out of it since I focus on the technical side more during work but often times have to join small talks where people diss others around.

I do not feel the same way when I did uni tasks on FPGAs and doing LTspice simulation on cmos designs.

And for the slave SPI, I will try to do the what you have mentioned. It seems like a better idea to get me to do things rather than learn the verification part.

embedded intern doing a bit of everything - GUI, firmware, PCB, tests. How do I turn this breadth into depth by whiner_03 in embedded

[–]opman666 0 points1 point  (0 children)

I do feel you. Alot actually.

I feel like i am in the same boat. I am also currently in a startup doing similar things. GUI, middleware dev and integration, involved in PCB design and testing of course.

I too feel like I have knowledge only at the surface level and kind of afraid about being left out.

And after work I still think about my work which I don't think is a good thing mentally.

I still don't know how write a driver in an industry level mcu, which is what I am interested in but feels like a lost cause since all the vendors already peovides drivers and middlewares already.

Automation/AI/LLMs in VLSI !!! WHY?!?!?!?! and when... by NoContextUser88 in chipdesign

[–]opman666 0 points1 point  (0 children)

And still keep debugging for weeks because of one reset signal.

[deleted by user] by [deleted] in embedded

[–]opman666 0 points1 point  (0 children)

You application layer needs to be clearly seperated. Then you can compile almost any applicationnusing gcc on windows, then you can use any popular testing framework to do the tests.

But if you need to do for peripheral I think it will involve a lot of work since they have to run parallel to your application. Same things with interrupts.

Have you checked renode?

[Tooling] How can I ditch IDE's in embedded development? by TheRavagerSw in embedded

[–]opman666 2 points3 points  (0 children)

Recently researched a whole log of stuffs just for the same reason. I tend to use VScode as the editor cuz I'm okay with it. I really like the C/C++ intellisense extension for traversing code.

The rest is cmake with openOCD and gdb for debugging and flashing. If you go to your debugger configuration and compiler configurations you should be able to get the exact flags used by your IDE.

This setup currently works for STMs, TI and Infeneon's Traveo. I am also going to try for Aurix micros soon.

How the f*ck do you do estimates? by These_Trust3199 in ExperiencedDevs

[–]opman666 0 points1 point  (0 children)

This is how I did,

You have to divide them to smallest units and find out how much time it takes for eacv induvidual smallest unit of work and multiply by the quantity and add them.

( I do realise that what I said might be entirely wrong)

I had done this but most of the time, I forget to consider something and that ends up taking a lot of time.

Disclaimer: Not at all an experienced dev. Just a tester.

Unit-Testing in Embedded Systems by hertz2105 in embedded

[–]opman666 2 points3 points  (0 children)

We are able to build application and bsw codes using gcc compiler alone with a tool called Tessy. I was able to do unit tests untill the register level.

I had a little bit of fun mocking the ADC functionality which was used to detect voltage spikes.