[quote author="trygvis"] I just got my web platform kit and managed to compile+build your freertos just fine. [/quote]
I'm glad you got it to work. I haven't had any time to work on it in quite some time now.
[quote author="trygvis"] However I got a couple of odd printf's on the serial port and the attached patch fixes it (basically a missing n). [/quote]
There is still a lot of cleaning up that needs to be done in the code. One area in particular that I have not come up with a unified approach to is the logging. Matt had started to write a logging daemon. I was thinking of doing it a different way. What's in there now is a mishmash.
The past month+ has been crazy with the holidays. I'm pretty busy at work right now. I have some computer projects I need to get finished. I'm probably going to be moving again soon. Whenever I can get back to it though I plan to do some more work on this.
[quote author="ian"] Do you think breakout boards are a worthwhile addition to the Dangerous Prototypes collection?[/quote]
I don't have a need for this one but, in general I would say yes, definitely.
Break out boards are often the only things SparkFun has that I can't easily get somewhere else.
This means I often end up buying more than just the breakout boards from them since I am placing an order anyway. Not that there is anything wrong with this or with SparkFun but, I think this same logic could help DP as well. If someone places an order to get one item they want, there's a good chance they'll get something else while they're there.
While Seeed is much slower for me in the U.S. than SparkFun they are a little cheaper so when I'm not in a hurry they're fine.
I have copy and pasted many lines at once from a text editor into the Bus Pirate terminal with no problems. I don't remember how many lines but definitely more than a dozen. Are you saying this is not working for you or have you just not tried multiple lines? If your listing is too long try pasting them in groups of 10 to 20 lines.
I believe I was using Notepad and HyperTerminal on Windows machine and it worked fine.
[s:]I called it "firmwareA2" so that the directory is more easily recognizable for what it contains, firmware for the Web Platform. The "A2" refers to it now being the second alternative firmware choice for the Web Platform.[/s:] As directed by Ian, the /trunk/web-platform/firmwareA2 directory has been moved and renamed to the /trunk/web-platform/FreeRTOS/port-eric directory as of r550.
I have set up the directory structure under [s:]/firmwareA2[/s:] /port-eric as specified in the Wiki. To this end, the /trunk directory will always contain the most recent but potentially unstable version of the code. The /tags directory will contain directories for released versions; code here should never be changed. The /branches directory will contain directories for maintenance of that numbered branch. Bug fixes should be made in /branches/X.X and this code should always be kept stable.
Based on this format, I have committed my code to /trunk and created a /tags/0.0.0 and a /branches/0.0 directory. Right at this moment (r543) all three of /trunk, /tags/0.0.0, and /branches/0.0 contain the exact same code except for the version string they report. Project files are in the root folder, all source code is in the /src directory and the output files are in the /bin directory. The CustomColors.txt file is for use by the MPLAB editor to add user defined color syntax highlighting. This is under Edit, Properties, Text tab, User Defined Color File.
At this point I would say the code is at a pre-alpha release stage but it does run. The DHCP client will acquire an IP address and a web server will be started. The web server will read files from the /www directory on the microSD card. Currently long file names are not supported so all files must follow the 8.3 naming convention. Therefore, create an /www/index.htm file for the default page. (I also added a /www/favicon.ico from the DP site to mine:) The USB serial port is set for 115200 baud 8,N,1 and will provide status messages. At this point the console will echo characters you type back to you but that is all it does.
I would not have released it at this point yet except that Ian asked to see how it was progressing. I doubt a lot of people will be interested in it but it is now available. I will continue to work in the /trunk directory and I expect things in there to change drastically. If you want to fix any bugs or would like to make some minor updates please do it it the /branches/0.0 directory and please keep the code stable. Anyone is more than welcome to follow along and test the code in /trunk. It is however still growing and evolving at this point and I may move/combine/eliminate any code in there in a seemingly random fashion.
A .hex file is available in the /bin directory that can be programmed in to a v1.0 or v1.1 Web Platform. At this point there is no bootloader. The .hex file must be programmed with a PIC programmer. Since Ian recently stated that all Dangerous Prototypes projects are first and foremost to fill a personal need for him and then as an added bonus to make the work available to the hacker community, I do not feel too bad in saying that this firmwareA2 project is the same for me. I am glad to give back to the community, am open to suggestions and welcome your feedback but I realize this may only be useful to me.
[quote author="doegox"] Thanks for the news Eric![/quote]
[quote author="doegox"] But still the same bug when attempting to compile & load the Bus Pirate ELF:( [/quote]
That's very disappointing to hear. After I get a chance to test it I will update my post on the Microchip Development Tools MPLAB X forum to see if I get any response. They may have not bothered responding to me last time because they knew the release was only a few days away. If it is still having the same problem with the latest version maybe they will reply.
[quote author="Eric"] I also need to figure out what to do about another licensing issue. My uart.c file has a lot of code in it from the Microchip peripheral libraries that come with the C30 compiler. [/quote]
I rewrote all my serial code now from scratch so there is no more Microchip peripheral library source code in it.
This gets me one step closer to being able to commit this to SVN. Hopefully this weekend I will have it ready.
[quote author="arhi"] I got the same "The program file could not be loaded: com.microchip.mplab.mdbcore.program.exceptions.ProgramFileProcessingException" you are getting so it has nothing to do with mplab-x installation imho but we are doing something wrong with the bp firmware on mplab-x [/quote]
I was probably not clear before. This bug seems to have been identified by Microchip and fixed for the next beta which has not been released yet.
Below are the two relevant posts from the Microchip >> Development Tools >> MPLAB X IDE forum I referenced.
Monday, October 18, 2010 9:53 AM ( #1 )
I'm using MPLAB X Beta3.0a on fedora 13 x86_64 with java 1.6.0_22 (32 bits)
When building a project with microchip C18 I get the following error: BUILD SUCCESSFUL (total time: 4s) Loading /home/rbras/progs/pic/testeTCP/dist/default/production/testeTCP.production.cof... The program file could not be loaded: com.microchip.mplab.mdbcore.program.exceptions.ProgramFileProcessingException
The complete java exception is:
java.util.NoSuchElementException at java.util.LinkedList$ListItr.next(Unknown Source) at com.microchip.mplab.mdbcore.program.ScopeBlock.InsertBlock(ScopeBlock.java:61) at com.microchip.mplab.mdbcore.program.ScopeBlock.InsertBlock(ScopeBlock.java:71) at com.microchip.mplab.mdbcore.program.ScopeBlock.InsertBlock(ScopeBlock.java:71) at com.microchip.mplab.mdbcore.program.processors.CoffReaderC18v2.BuildSymbolTable(CoffReaderC18v2.java:202) at com.microchip.mplab.mdbcore.program.processors.ProgramFileCoffDefault.Load(ProgramFileCoffDefault.java:346) at com.microchip.mplab.mdbcore.program.processors.ProgramFileCoffDefault.Load(ProgramFileCoffDefault.java:245) at com.microchip.mplab.mdbcore.program.spi.ProgramFileProviderFactory.getProvider(ProgramFileProviderFactory.java:98) at com.microchip.mplab.mdbcore.loader.MCLoader.Load(MCLoader.java:67) at com.microchip.mplab.nbide.loader.MdbLoader$1.run(MdbLoader.java:42) [catch] at java.lang.Thread.run(Unknown Source)
It looks like MPLAB-X can't open the cof file but I am not sure.
...several more posts here including the original poster sending the developer/programmer a copy of the COFF file as requested...
Wednesday, October 27, 2010 5:43 PM ( #6 )
Thank you very much for prioviding the COFF file ;-). There was definitely a yet unidentified and unexposed corner case created by the particular project and Language tools you are working with. The COFF file provided me with the context to locate and trap the cause of the problem.
The problem has been fixed and the solution will be available in the soon to be release Beta 4 version of MPLAB X.
Thanks again for investing the time and helping us to sharpen and refine the next generation of MPLAB.
...a thank you post from the original poster and then my post...
Saturday, November 06, 2010 3:37 PM ( #8 )
I just started testing with MPLAB X and am getting this same error. Well, not exactly the same since I am using the C30 tools so it is complaining about a ...production.elf file instead of a .cof file (It does not seem like the option to select between ELF and COFF formats has been implemented yet). The same error occurs when this particular project is compiled on both a windows and a Linux platform. Is there any workaround or patch? Would it be helpful to post the .elf file?
I think one other advantage that was not mentioned is that once a new version of a Microchip tool comes out support for the previous version will start to fade. As new chips come out it is likely that at some point they will no longer be added to the ICD2. This is what happened to my ICD1, then support for it was dropped from MPLAB. You probably have quite a while till this starts to happen though. I got mine when they first came out and Microchip had a trade-up program. If you donated your ICD2 to one of their educational charities (such as FIRST) you got a discount on a new ICD3.
[quote author="doegox"] Well actually we weren't talking about creating a new project from an elf file.
When you compile (hammer&sweep icon) e.g. the bus pirate in MPLABX, it finishes on the following messages:
BUILD SUCCESSFUL (total time: 10s) Loading .../trunk/source/busPirate.X/busPirate/dist/default/production/busPirate.production.elf... The program file could not be loaded: com.microchip.mplab.mdbcore.program.exceptions.ProgramFileProcessingException
So maybe it simply doesn't make sense if there is no debug info but it's quite disturbing, they should then not attempt to load the result at all...
Edit: I tried the "Debug Project" (ctrl+F5), same behavior [/quote]
I believe what you are referring to is a known bug in MPLAB X. See my post here.
See also this Microchip Forum thread (you have to be registered to see this -- first you have to register on Microchip's forum then second you have to request access to the MPLAB X board but, I can't remember where or how you do that right now -- I'll update this when I remember or find it).
[quote author="hardcore"] Also you should consider 'Netiquette'. Slapping underpowered and potentially insecure equipment on the net does not do anyone any favours, then there are the issues related to IPv6. [/quote]
It depends on where you use it. On my LAN it is useful for me and being behind my firewall I do not think it endangers anyone else. (I think IPv6 is still a long way off -- since good NAT has been developed I think the push for IPv6 has lost momentum. It will come eventually but I think it will be a long time -- if ever -- before IPv4 only equipment will no longer work on the net.)
[quote author="hardcore"] By standardizing on a more powerful processor that runs an off the shelf OS you free yourself to do what the project was intended to do , and that is experiment, link items to it, write web code etc,... [/quote]
Again, it depends. I do not think I would have a use for one of those. I do however like the idea of adding some Ethernet/IP connectivity to some of my dsPIC projects and so have a use for the current version -- which is why I bought two.
[quote author="hardcore"] 300 pcs is not a big number for the amount of work that went into it. (even if there was a $25us margin on it.)... ... but more importantly it frees the 'maintainers' of the hardware up to do more profitable things, which is where the REAL money and sales are, such as attachments.(not to mention the enjoyment)[/quote]
I guess that depends on what the motivation/enjoyment of the project is -- money? I didn't think it was but then I wasn't involved.
[quote author="hardcore"] if you want a 'special' function/ IO, etc then you write a driver that drops into the kernel, which can be driven directly from a multitude of programming languages, that ANYONE not just c programmers can use.[/quote]
Yes, if you don't want to program in C or assembly then you are probably going to need a more powerful platform. For most of what I want to do or experiment with though this would be overkill.
When I have to configure/fix/rebuild my wireless router I am working on a platform closer to what you are describing. It runs a nearly full fledged distribution of Linux (OpenWRT) -- it actually has a more powerful CPU than I think the first computer I ran Linux on had. It is a great network platform. I doubt we could build a 400MHz MIPS, 64MB RAM, 32 MB FLASH, five gigabit port VLAN capable Ethernet switch, 802.11b/g/n wireless, USB host, etc., etc. system plus case and power supply for $69.99 shipped. If you want to do web design with high level scripting languages this is a great platform to start with. It even has a couple slide witches, a few push buttons, and about half a dozen LEDS for a user interface. However it does not have nearly the collection of low level peripherals that the dsPIC does like ADC, DAC, PWM, SPI, I2C, CAN, analog comparators, large number of digital IO, etc., etc. that make it great for hardware projects. This is what sets the microcontrollers apart from the 32-bit embedded Linux systems -- hardware peripheral support. They are two very different platforms -- different tools for different jobs.
I find the discussion of this new M3 based system interesting but I don't think I would end up getting one. That doesn't mean other people wouldn't end up getting one and find it useful. It does seem like more of a saturated market though.
[quote author="hardcore"] Is all the work really needed? http://www.plugcomputer.org/ buy one and see what improvements can be made, but for a web server connected on the public network, there really is a need to be able to handle the network load by the use of multi threaded systems, I really do not see the 'pic' as a logical choice.[/quote]
I think you're right about this. It would probably be hard for us to beat one of those for this type of platform. If this is what you're after just get one of these.
[quote author="hardcore"] If something is going to be built, then it needs to be useful...[/quote]
Agreed. But what useful means and to who is the question.
I think we need to define what the goal of the project (or the goal of the next version of this project) is otherwise feature creep and good ideas will pull it down a path that was not intended. But that's just my opinion, take it for what its worth.