Jump to content

Ian Harris

EstablishedMember
  • Content Count

    87
  • Joined

  • Last visited

Everything posted by Ian Harris

  1. Thanks for your feedback! I've updated the boostbloader to work with 6.85. I'll put an updated archive up later today (1.01). Let me know how you go with that one. kind regards Ian.
  2. Hi all, I've built up a few libraries for accessing different devices and have published them for everyone to enjoy. As I've been working through the code and tidying it up, I've been writing tutorials on how to use it. All tutorials cover a BoostC project with everything in it ready to go. All routines are safe with read-before-write 16f device pins and include a "config" concept so you can use #defines to decide port and pins for each device. There are tutorials, demos and full documentation so far on Introduction to Pics, making things flash Compiling for Pics, the BoostC compiler Bootloading, including modified Sparkfun bootloader (the "boostloader") that compiles under BoostC and works with BoostC apps > 2k, and 18f Pics Screamer, modified Sparkfun windows app for downloading to the boostloader (much faster than the original) Solid interrupt driven serial routines with fifo tx/rx 4 bit interface with LCDs Timers and helper routines i2c communications LM75 temperature sensor There are also libraries for Interrupt driven routines for Nordic nrf2401a and nrf24L01 DS1307 real time clock SHT15 temperature and humidity sensor HC4 4 digit led display SPI routines SPI (modified) to work with Sure electronics large 7 seg displays and 5x7 led arrays Meshed multi-hop packet RF networks (on top of the Nordic chips) As I work through this code and tidy it up, I'll add tutorials for these as well. Eventually I'll get to porting some examples to the Novo RTOS as well. I'd be interested in your feedback and input into the libraries. I've learnt a great deal from people out there on the net, and while I'm sure there are still many bugs, I hope these will help others get started quicker and enjoy using BoostC as much as I have. The web site is embeddedadventures.blogspot.com kind regards Ian.
  3. Hi, I have some devices that use the 16f57 pic and was planning to write some new code for them - only to find that surprisingly BoostC doesn't support that pic. Is it simply a matter of creating the appropriate include files, or is there something specific about this pic that boostc doesn't support (eg, 12 bit instructions). kind regards Ian.
  4. I'll vote for this feature as well. It would be really neat to be able to run a script (eg, perl) to calculate a bunch of stuff based on the compilation, eg baud rate SPBRG values etc based on the clock frequency, pic type, etc. So passing the target, clock frequency, project directory would be good. While I'm at it, does anyone know how to get hold of the current clock frequency in #defines? eg, #pragma CLOCK_FREQ 8000000 - is the 8000000 available as a #define anywhere? regards Ian.
  5. Likewise, I'd be interested in this - it's for me to start with USB as well. Funny how these things go in waves...
  6. And here's when I unzip the file I sent and try and compile it. I appreciate you taking the time to check it, but there's definately something wrong here. Can I try a debug version of the linker to get more information for you about the crash? I am happy to try whatever you suggest to get this solved. regards Ian. Building... BoostC Optimizing C Compiler Version 6.81 (for PIC16 architecture) http://www.sourceboost.com Copyright(C) 2004-2007 Pavel Baranov Copyright(C) 2004-2007 David Hobday Licensed to Ian Harris under Single user Pro License for 1 node(s) Limitations: PIC12,PIC16 max code size:Unlimited, max RAM banks:Unlimited lcd_main.c success BoostLink Optimizing Linker Version 6.81 http://www.sourceboost.com Copyright(C) 2004-2007 Pavel Baranov Copyright(C) 2004-2007 David Hobday failure Unexpected program termination! "C:\Program Files\SourceBoost\boostc.pic16.exe" lcd_main.c -t PIC16F876A -W2 "C:\Program Files\SourceBoost\boostlink.pic.exe" /ld "C:\Program Files\SourceBoost\lib" libc.pic16.lib lcd_main.obj lcd.obj /t PIC16F876A /d C:\test\pic\pic_pack_demos\lcd /p pic_pack_lcd_demo Exit code was -2. Removing target: pic_pack_lcd_demo.hex Failed to locate output file 'C:\test\pic\pic_pack_demos\lcd\pic_pack_lcd_demo.hex' Done Failed
  7. Hi, I'm having a problem with boostlink crashing. Any suggestions from below, or can I post someone the project? regards Ian. Building... BoostC Optimizing C Compiler Version 6.81 (for PIC16 architecture) http://www.sourceboost.com Copyright(C) 2004-2007 Pavel Baranov Copyright(C) 2004-2007 David Hobday Licensed to Ian Harris under Single user Pro License for 1 node(s) Limitations: PIC12,PIC16 max code size:Unlimited, max RAM banks:Unlimited lcd_main.c success BoostLink Optimizing Linker Version 6.81 http://www.sourceboost.com Copyright(C) 2004-2007 Pavel Baranov Copyright(C) 2004-2007 David Hobday failure Unexpected program termination! "C:\Program Files\SourceBoost\boostc.pic16.exe" lcd_main.c -t PIC16F876A -I "..\..\pic_pack_lib\" "C:\Program Files\SourceBoost\boostlink.pic.exe" /ld "C:\Program Files\SourceBoost\lib" libc.pic16.lib lcd.obj lcd_main.obj i2c.obj rtc.obj /t PIC16F876A /d C:\pic\pic_pack_demos\lcd /p pic_pack_lcd_demo Exit code was -2. Removing target: pic_pack_lcd_demo.hex Failed to locate output file 'C:\pic\pic_pack_demos\lcd\pic_pack_lcd_demo.hex' Done Failed
  8. Hi, I'm trying to be tricky, I guess - avoiding having to define a tris #define each time. The idea behind this code is that it detects which port you're using and defines the tris #define for you. Unfortunately, the following only half works. The first #if works fine - but then so do all the rest of the #if statements, leading to a "Illegal redefinition of symbol:lcd_e_tris" for all the other tests. #define lcd_e_port PORTB #define lcd_e_pin 7 // Magic code to #define lcd_e_tris for you #if lcd_e_port == PORTA #define lcd_e_tris trisa #warning "e trisa" #endif #if lcd_e_port == PORTB #define lcd_e_tris trisb #warning "e trisb" #endif #if lcd_e_port == PORTC #define lcd_e_tris trisc #warning "e trisc" #endif #if lcd_e_port == PORTD #define lcd_e_tris trisd #warning "e trisd" #endif
  9. Hi All, Just a few notes on suggestions for updates to the BoostC compiler after investing in the pro version and having a good couple of months play with it. For the most part, I'm very happy with the BoostC compiler. - Being able to specify where a chunk of code starts, eg, before the subroutine, would be very handy to locate different parts of the code in different locations. You can get around this with the DATA pragma, but it means hand-coding assembler, turning it into hex, and then putting it in code. Not nice. This would make bootloaders, etc much easier. CC5X uses the pragma origin to do this. Also means that same project could be used to build for different chips, since you wouldn't need to go change the -rb command line option - delay_ms seems to run very fast - despite having pragma CLOCK_FREQ set correctly, when run on an actuall device it's running at least 4? times fast. delay_ms(1000) does not delay for a second. - Call tree and Function info are one of the best things about BoostC - being able to have all this information to optimise is just fantastic. One thing that would be handy is some more information about the #GLOBAL section - you can see the total, but where did it come from? A file by file break down would be very helpful here, especially with complex projects Many thanks for a great tool, kind regards Ian.
  10. Is anyone aware of a TCP/IP port of the Microchip stack? I'm interested in using some of the olimex boards, but after my investment in BoostC, I'd rather not move compilers. regards Ian.
×
×
  • Create New...