? Colin, Would you please explain what steps do we need to use before delivering a embedded code when we use some library from device manufacturer to get free any licence or paying extra money while they didn't guarantee for that library but they mentioned it is under their licence?
sometimes Peripheral devices are not generally software friendly and it took much time to be synchronzied with embedded platforms and also there is not any guidline to implement a proper solution and we should test and change software code to get the required result
@samsul: ARM has done a decent job at making libraries available. They have standardized on CMSIS and most vendors of ARM parts that I know of have made these libraries avaiable. However, they're still not always the easiest things to use. Complicated hardware makes for complicated software -- even (or especially) for predefined libraries.
@ Charles, I'm listening to the audio post, and curiously, the audio levels are fine in the recorded version, equal to the sign on. It's only in the stream that the presentor's levels are soft. Hope that is helpful to your team.
I think the reentrancy code is really talking about the synchronization in the code. That is the reason we need the lock() and unlock() function to avoid the race condition for the critical data. Once the code run into the lock() and unlock(), it will make the code in sequence.
@lazar.ivanovic: the overloaded char operator is used whenever you convert from an nvramchar type to a "normal" char - an assignment as I showed is a simple example. Really, on slide 9, I shjould have written:
We are now in year 2014.... times moving fast. Should it not be the responsibility of the manufacturers to come out with libraries for their peripherals? So, programmers just apply them in his/her apps. At least the libraries up to certain point to ease programmer's life
When I design a peripheral I try to make it as software friendyl as possible but sometimes the customer will demand that a few pennies be saved on teh hardware not realizing that savings will be wiped out by the additonal sofware development cost.
The stanard meaning of re-entrant is a program that can call itself, ie n! = n*((n-1)!). Your use here is normally called serialization. Your description of what you wanted to do was very clear, but the terminology might cause some confusion when communicating with someone used to the standard definition.
@mcurry: I did not use the string class for 2 reasons. First when this code was first written, this class was not in widespread use. Second, I wanted as much of this code to be "C programmer friendly" as possible
? @Colin: i noticed that the checksum was located before the signature field. Why was that? it would seem prudent to include the signature data field in the checksum by putting the checksum after all written data, that way you would know that the written signature was what you thought it was.
?@Are peripheral devices generally "software friendly"? I tend to believe that low level designers have fun in trying to "save the world" and solve problems long term. However, some companies may put too much effort in sticking to the release dates and other commercial pressures and continue for decades to wirte buggy code even at the lowest level.
?Colin - What about using a separate nvram class to hold the baseaddr and size and to do the initialization? You could then pass the nvram object to the nvramchar constructors to set up the individual variables.
? I seem to remember, from my coursework on compilers, that function arguments tend to end up on the stack and we have discussed allocated memory ends up on the heap. We discussed fragmentation as a problem with OO design since new calls malloc which is a heap operation and then free can fragment memory. The method of addressing that is with binned heap segments which has some obvious memory inefficiences. Isn't use of the stack more memory efficient? It seems like the C+ alternative to C would have to be very carefully written with a conservative and thoughtful use of class variables. C naturally pushes code in that direction. Are there any design guidelines that push a C design in that same direction?
Hi all -Audio is live! If you don't see the audio bar at the top of the screen, please refresh your browser. It may take a couple tries. When you see the audio bar, if it doesn't start automatically, hit the play button. If you experience audio interruptions and are using IE, try using FF or Chrome as your browser. Many people experience issues with IE. Also, make sure your flash player is updated with the current version. Some companies block live audio streams, so if that is the case for your company, the class will be archived on this page immediately following the class and you can listen then. People don't experience any issues with the audio for the archived version.
Hello everyone. Welcome or welcome back. Thanks for all the feedback/interaction since yesterday's session. We will begin the lecture at the top of the hour and I plan to be back here to address any questions straight afterwards.
You are eligible to earn IEEE Professional Development Hours by attending these courses and participating in the chat function. Additionally, we are no longer using the points system, offering "graduation", or giving grades. The IEEE hours are taking the place of that. There are some important things for you to know about earning the hours. The most important ones are that you need to attend these courses live, you need to attend a minimum of two of them per semester, you need to fill out a course evaluation form within 2 weeks of the end of the class, you need to attend 4 out of the 5 classes per course, and you need to participate in the chat function every day you attend. Please click on the link at the top of this page that says "How do I earn IEEE professional development hours" to read all of these important details and more.
Please join our Digi-Key Continuing Education Center LinkedIn Group at http://linkd.in/yoNGeY and be sure to follow @designnews and @DigiKeyCEC on Twitter for the latest class information. We encourage you to tweet about today's class using #DigiKeyCEC.
The streaming audio player will appear at the top of this web page when the show starts at 2 PM Eastern time today. If the audio doesn't start automatically, click on the play button to start it. Note however, that some companies block live audio streams. If when the show starts, the audio bar doesn't appear or you don't hear any audio, try refreshing your browser. If that doesn't work, try using Firefox or Google Chrome as your browser. Some users experience audio interruptions with IE. Also, make sure your flash player is updated with the current version. If that doesn't work, your company is likely blocking the live stream. The class will be archived immediately following our live taping and you will be able to listen to it then. You shouldn't experience any problems with the audio when listening on-demand.
Fifty-six-year-old Pasquale Russo has been doing metalwork for more than 30 years in a tiny southern Italy village. Many craftsmen like him brought with them fabrication skills when they came from the Old World to America.
Focus on Fundamentals consists of 45-minute on-line classes that cover a host of technologies. You learn without leaving the comfort of your desk. All classes are taught by subject-matter experts and all are archived. So if you can't attend live, attend at your convenience.