Thursday, February 22, 2007

    Chip Hop with MC Plus+

    From their site
    MC Plus+ is a superhuman with an incredible vision far beyond light years ahead of his time. By combining constructs of hip hop with computer science beats he hopes to bridge the gap between present reality and the inner workings of our imagination while resurrecting hip hop in mathematical form. He is credited with formally proving all but one of the fundamental conjectures, which remains unsolved in hyperbolic space. He has also made important decisions with regard to undecidability only to rediscover the genius of his work. His recent attempts at halting the halting problem look promising. Formalizations of the lyrical functions he has defined remain a mystery to all those who study them.
    What? [http://www.mcplusplus.com/downloads/]

    Tuesday, February 20, 2007

    ASM30 files passed through C Preprocessor

    There is a big change in MPLAB IDE 7.52 that directly affects users programming in ASM30 (assembly code for 16-bit devices). If you have C30 installed and select to build with the C30 Toolsuite rather than the ASM30 toolsuite, the project manager will now pass your assembly source file to the pic30-gcc.exe compilation shell. Files ending in a .S (capitalized S) will be passed through the C preprocessor. This means that you can now use C preprocessor directives, such as #define, in .S files.

    The image blow shows a simple example, but I'm sure that there are better uses for this highly requested feature.



    Edit: 1 March 2007
    I created a short video showing a project using ASM30 files with the C30 preprocessor. The video is low rez, I hope you can see what is going on. Remember 1) Use the Microchip C30 Toolsuite, 2) Add the file to your project with the .S (capitalized) extension.


    Video: Preprocessing an ASM30 file with MPLAB IDE 7.52

    Monday, February 19, 2007

    *Unofficial* list of changes in MPLAB IDE 7.52

    I compiled a list of MPLAB IDE 7.52 changes that may be of interest to forum.microchip.com members. Please remember that this list is unofficial and incomplete. Let me know if this is useful to you or not.

    *Unofficial* list of changes in MPLAB IDE 7.52

    Simulator
    • Added Code Coverage feature to most engines.
    REAL ICE
    • Added "Program After Successful Build"
    • Added "Run After Successful Program"
    MPLAB IDE
    • Added folder-history widget to File Open and File Save dialogs
    Editor
    • Added "Include File Open" from context menu. Right click on an include file to open it in the editor.
    • Added optional checking and repair of line terminators on File Save.
    • Added feature to optionally highlight an entire line for the current Program Counter.
    • Added "Close" to the context menu.
    • Reorganized editor property pages
    Project Manager
    • Enhanced Project Wizard to allow reconfiguration of currently active project. Quickly create a new project based on the current project.
    • Enhanced Project Wizard to add files in Auto, User, System, or Copy mode.
    MPLAB C30 Toolsuite
    MPLAB C18/MPASM Toolsuite

    • Added C18 --verbose option checkbox.
    Data Monitor and Control Interface (DMCI)
    • Added hot-tracking feature to slider controls. The Slider controls can now be configured to apply run-time position changes in the following automated sequence steps: [Halt, Reset, Write, Run] or [Halt, Write, Run].
    • Graphs can now be generated from MPLAB REAL ICE real-time data acquisition.
    • Added a new resizeable tiled view.
    • Added project-scope persistence of last-loaded DMCI profile
    Plus... numerous other miscellaneous bug fixes. For Tool-Specific New-Device support, please see the tool's readme file.

    How to Disable Outlook's CTRL+ENTER Send Mail Shortcut

    I recently switched to Outlook 2003 for my email, contacts, and calendar. Unfortunately, since the switch, several of my co-workers have received empty and unfinished messages from me. Why? Outlook has a CTRL+ENTER shortcut key to send a message. I'm not really sure why, but my fingers seem to like to hit CTRL+ENTER for other reasons...

    Luckily Blake Handler has posted instructions on how to disable this shortcut.
    You can disable CTRL-ENTER in Outlook by adding the two following registry keys:

    Key: HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\
    11.0\Outlook\DisabledShortcutKeysCheckBoxes
    String Value: CtrlEnter
    Value Data: 13,8
    Key: HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\
    11.0\Word\DisabledShortcutKeysCheckBoxes
    String Value: CtrlEnter
    Value Data: 13,8


    NOTE: I'm using Office 2003 = 11.0 (XP = 10.0, 2000 = 9.0)

    Read the full step-by-step instructions on Blake Handler's blog.

    Sunday, February 18, 2007

    Cost of reporting a bug too early?

    Most software developers and testers are all too familiar with a chart showing how the cost of fixing a bug increases exponentially over the project cycle. Fixing a problem early (or preventing it in the design phase) is significantly less expensive than polishing it out in the certification test phase. Almost nobody argues against the principle that when it comes to fixing bugs, the earlier the better (for the project and for my health).

    To address this principle, the MPLAB® IDE team has taken a highly iterative approach to software development. They send frequent builds "over the wall" to our test group. As new features come online in these test builds, we perform some early exploratory testing to make sure that each new feature or improvement matches our expectations based on approved requirements and design documents. We often then go back to update our test plans so that they better cover the feature's scope.

    So what's the problem? Maybe the chart showing the cost of a fixing a bug increasing over the project cycle doesn't show the entire picture. With the highly iterative development processes that are becoming increasingly more popular with development teams these days, is there also a hidden cost of reporting a bug too early?

    By sending the test team very frequent test builds, the development team is giving the test team a very early look at a new feature, usually before it is anywhere near being finished. At an early stage, most features are often pretty rough with stubbed functionality and a placeholder GUI. What's a test engineer to do?

    At this early stage, how can a test engineer really know if an issue is a limitation in the current build or a real bug? On one hand, I could go ahead and enter a bug report in the tracking system. When the developer sees the report they could just wait for the implementation to be further along and then just mark the issue as fixed. However, there's an associated cost with that approach. Each and every time someone from either the test team or the development team interacts with a bug report, it costs time. Until the issue/limitation gets "fixed" that bug will show up on reports, in project status reviews, and in issue-prioritization meetings, wasting everyone's time as the issue is read and discussed. Often times, these types of issues linger around long after they are actually addressed by the developer through the natural evolution of the feature. Then, later in the project, the developer can't reproduce the issue on their current code base and asks the test engineer to retest the feature. Again, all of this costs time.

    Alternatively, I could make a personal note to myself to go back to retest the functionality later and continue testing by working around the limitation. In later builds, I then go back through my personal list of "retest" items to make sure that the developer didn't miss anything. If the issue still exists, I could then re-evaluate my decision to enter a bug report or leave the item on the list for retest on an even later build. With this approach there is both an associated complication of keeping my own personal list of issues to retest in parallel to the actual bug tracking system and also a risk that I may end up delaying the bug report until it becomes more difficult and expensive to fix.

    The MPLAB IDE team tries to address these concerns by providing a build status report with each build. Each developer is responsible for providing information on the feature/changes that they have put in the build. These reports are supposed to tell the test team what to test and what is not ready for testing. They also use the reports to make us aware of any limitations in the build. These build reports tend to work out pretty well in practice so long as the developer provides sufficiently detailed information and the test engineer is aware of all of the implications of each limitation.

    In the end, I believe that erring on the side of reporting a bug too early is safer than sitting on it and possibly reporting it too late. Good communication between the development team and the test team results in better and more accurate understanding of the state of the software and therefore more effective testing. What do you think?

    Inventor of the TV remote dies

    The Associated Press is reporting that the co-inventor of the TV remote, Robert Adler, has died.

    From The Mercury News
    Adler, who won an Emmy Award along with fellow engineer Eugene Polley for the device that made the couch potato possible, died Thursday of heart failure at a Boise nursing home at 93, Zenith Electronics Corp. said Friday.

    Saturday, February 17, 2007

    Multiple Directory Search Paths in MPLAB IDE 7.52

    MPLAB IDE 7.52’s project manager introduces a new interface for entering directory search paths used to build the project. The new interface makes entering multiple include file paths easier than ever.

    To add a new search path, first select the correct field type on the Directories tab. You can choose one of the usual path types as shown below.


    Next, press the New button to get a new entry in the table. From there, you can either type the path into the field or press the […] button to get a browse dialog.

    Hopefully this new interface will make entering multiple directories more convenient (no more semicolon separated lists!).

    Thursday, February 15, 2007

    Microchip Ships 500,000th Development Tool

    Microchip just announced the shipment of its 500,000th development tool to Australia’s Ness Security Products. Everyone in Development Systems is proud of this large milestone. It's a nice little morale booster.

    While the 500,000th development tool shipment was the main point of the press release, one quote from Creed Huddleston, president of Real-Time by Design, caught my eye.
    Microchip’s 55,000 customers in more than 65 countries would agree. Creed Huddleston, president of Real-Time by Design, LLC, and author of the new book Intelligent Sensor Design Using the Microchip dsPIC® DSC, utilizes Microchip tools in his daily work as an embedded design consultant. Huddleston observes that, “the primary reason for using Microchip development tools is that they are readily available, inexpensive and there are user forums available to get help when the inevitable questions or problems arise. Microchip does a great job of providing low-cost and highly valued tools.”
    People are recognizing that Microchip's user community is becoming a huge resource. Thanks to all of the http://forum.microchip.com contributors!

    Wednesday, February 14, 2007

    Hiring in Bangalore

    In case you haven't already heard, the Development Systems test group is hiring a senior software test engineer at our Bangalore, India office. Yep, one unfortunate individual will have the opportunity to work directly with me in testing Microchip's C compilers, assemblers, and linkers.

    As I was helping my manager write the job description, I got to thinking... what kind of a person makes a good development-tool test engineer, or more specifically, a compiler test engineer? Should we look for someone with software-testing experience? compiler development experience? embedded-systems experience?

    Of course most of the hiring resources that I found said to look for someone with the ability to learn, solve problems, and communicate effectively and not just someone with a specific skill set. Good advice. On the other hand, I really do want to find someone with at least a few basic pre-existing skills. I don't want to have to teach someone how to convert a hexadecimal value to binary. OK, so I guess that means I need someone who has at least some embedded-systems knowledge.

    Basically, I'm looking for someone who can solve problems and communicate effectively and who also has some embedded-systems knowledge. Sounds easy enough.

    In order to identify a candidate who meets those requirements, we put together a short technical screening test that we plan to give to candidates when they come in for their interview. It's pretty easy; any engineering student with a few embedded systems classes under their belt should be able to answer the questions. I'm thinking that we'll give the test to the candidate when they first come in, and then ask them to explain their answers and thinking in the oral part of the interview. What do you think? Will that help me to find a good compiler test engineer?

    You can really help me out by posting some suggestions for both technical and more open-ended questions as comments to this post. What qualities would you look for if you were doing the hiring?

    As they say on the forum: Thanks in advance!

    Tuesday, February 13, 2007

    Crunch time for 7.52

    About 8 weeks have raced by since the MPLAB IDE 7.51 interim release. That means another release is rapidly approaching and it's crunch time for the entire Microchip Development Systems group. Not only do we have a new interim version of the IDE on deck, major new versions of MPLAB C18 and MPLAB C30 will follow closely behind.

    I can't tell you much about the all of the changes in MPLAB IDE because I haven't had much time to try them out myself. Same goes for C18.

    On the other hand, I've been working closely with another test engineer to run C30 through the gauntlet. I can tell you that this C30 release has a few significant new features and it is a big step for the compiler. I shouldn't really detail the new features before the release, but be sure to read the readme file and the migration document when they hit the web.

    So, once all of the software tools are approved for release to the web, I'll try to come up with a bullet list of changes that may interest http://forum.microchip.com users like I did for MPLAB IDE 7.51. I didn't get much feedback last time, but I hope it was useful to some users.

    Wednesday, February 07, 2007

    MiWi Wireless Networking Protocol Stack available as AN1066

    One of Microchip's many applications groups recently released application note 1066 for the MiWi protocol stack. I haven't used it myself, but I attended a presentation on the wireless protocol a few months ago, and it peaked my interest.
    The MiWi™ Wireless Networking Protocol is a simple protocol designed for low data rate, short distance, low-cost networks. Fundamentally based on IEEE802.15.4™ for wireless personal area networks(WPANs), the MiWi protocol provides an easy-to-use alternative for wireless communication. In particular, it targets smaller applications that have relatively small network sizes, with few hops between nodes, using Microchip’s MRF24J40 2.4GHz transceiver for IEEE802.15.4 compliant networks.

    This application note covers the definition of the MiWi Wireless Networking Protocol Stack and how it works. The example Stack implementation data structures, usage and APIs are covered in this document, as well as resource requirements for this implementation. For completeness, the document also introduces several aspects of wireless networking, as well as key features of IEEE 802.15.4. However, it is assumed that the user is already familiar with the C programming language and IEEE 802.15.4. You are strongly advised to read the specification in detail prior to using the Microchip MiWi Wireless Networking Protocol Stack.
    Most importantly, the software works with everybody's my favorite C compilers, MPLAB C18 for PIC18 and MPLAB C30 for PIC24/dsPIC30/dsPIC33. You can read more about MiWi here or get AN1066 here.

    Transmeta shuts down CPU business

    ExtremeTech is reporting that Transmeta is getting out of the CPU engineering business and instead will focus on IP development and licensing.

    Steve Jobs says that DRM doesn't work

    Over at apple.com, Steve Jobs' blog gives his Thoughts on Music. The 10-minute read explains the current state of the digital music industry and (surprisingly) respectfully mentions all of the industry's major players. Where does he want the industry to go?
    Why would the big four music companies agree to let Apple and others distribute their music without using DRM systems to protect it? The simplest answer is because DRMs haven’t worked, and may never work, to halt music piracy. Though the big four music companies require that all their music sold online be protected with DRMs, these same music companies continue to sell billions of CDs a year which contain completely unprotected music. That’s right! No DRM system was ever developed for the CD, so all the music distributed on CDs can be easily uploaded to the Internet, then (illegally) downloaded and played on any computer or player.
    Read the full post.

    Friday, February 02, 2007

    Can't Run Home Editions Of Windows Vista On Virtual Machines

    Paul McDougall at Information Week is reporting that Microsoft's Vista Home Premium or Basic editions' license agreement prohibits "booting the software 'within a virtual (or otherwise emulated) hardware system'".
    That means Linux aficionados or users of Apple Macs will not legally be able to use software from vendors such as Parallels or EMC's VMWare to create so-called virtual machines on their desktops to run Vista alongside their favorite OS. Windows users wanting to run Vista in a virtual machine environment for security or productivity purposes also will need either the Business or Ultimate Edition.
    Read the full article at Information Week.

    Thursday, February 01, 2007

    Microchip's dsPIC30FXXXX DSCs Chosen as "Finalists" for EDN Innovation Awards

    Microchip’s dsPIC30FXXXX DSCs for Switch-Mode Power Supplies (SMPSs) were chosen by EDN as finalists for its Innovation Awards, in the “Microcontrollers and DSCs” category. Congratulations to the DSC team!