Jump to content


  • Content Count

  • Joined

  • Last visited

Everything posted by Pavel

  1. That's because 16F84 doesn't have _LVP_OFF defined. You need to change the config word to match your target. Regards, Pavel PS: BoostC 1.5 is already an old release. Please upgrade to SourceBoost 5.7 that includes BoostC 1.6
  2. You probably are trying to call same function from both main and interrupt threads. Such code won't link and linker will report an error. Otherwise if such function is interrupted it's data can be changed and upon return to main thread the function will behave unpredictable. Another point is that using delay from inside interrupt suggests bad application architecture. Interrupts are supposed to be as small and fast as possible. Regards, Pavel
  3. We are happy to announce new SourceBoost 5.7 and BoostC 1.6 releases. This is the first BoostC release when compiler is getting mature. Several our beta users reported success using BoostC in big projects. All BoostC bugs reported by our users are fixed in this release. Thanks to everybody who sent us feedback about the compiler. We also fixed a few small problems in the ide and a bug in C2C++ compiler. We recommend for everybody to update your older SourceBoost IDE and BoostC released for this one. Regards, Pavel
  4. Thanks for all these suggestions. We won't be able to add this feature into the upcoming release (SourceBoost 5.7 & BoostC 1.6) and will try to roll it in into the next release or update. Regards, Pavel
  5. You get errors because __config is not an assembly instruction. Use pragma DATA to set configuration word. Regards, Pavel
  6. That's because there are no errors in this expression from language point of view I see at tleast two options. Yu can use bitwise operations. For example to check if bit 2 is set use something like: if( portb & 4 ) ... Or declare a bit variable mapped on a port pin: volatile pinB1@0x6.1; //declare bit variable mapped to pin 1 of port B if( pinB1 ) ... Regards, Pavel
  7. There are many 'if' expressions in the code that are never executed and are optimized out by compiler (Don kindly provided his project sources). For example: if (portb, CHG == 0) ... In this expression CHG was earlier defined as '2' (expression 'portb' doesn't produce any code and expression '2 == 0' is always 'false'). The result of this expression is always 'false' and compiler optimizes out the 'if' body. Regards, Pavel
  8. I couldn't reproduce this problem. When I manually define allthese flags code compiles without errors. Are you sure all they are defined in your code (or some were misspelled). Regards, Pavel
  9. That's probably linker who optimizes out 'dead' code or code that is never executed. If you think that linker optimizes out code that it should not please send me your zipped project so we can check it. Regards, Pavel
  10. I will be interested in BoostC errors as well. We prepare a new BoostC release and I'd like to fix as many defects as possible. Regards, Pavel
  11. I wasn't able to reproduce the problem. Can you provide a source file (simplified if possible) that will exibit this problem. Regards, Pavel
  12. I see what's wrong. Fix will be available is soon to be released SourceBoost 5.7 & BoostC 1.6 release. Regards, Pavel
  13. BoostC doesn't yet support high/low priority interrupts but not because of any technical difficulties but because we haven't decided how to deal with context saving. Hardware context saving can handle only one interrupt and Microchip doesn't provide any solutions how to deal with context saving for high priority interrupt when it occures during low priority interrupt. Do you have any suggestions how to deal with this problem? Regards, Pavel
  14. We already have this task in out BoostC todo list. Current plans are not to optimize assembly inside the 'asm' operation except adding bank and code page instructions if necessary. Regards, Pavel
  15. BoostC 1.5 Alpha release is available to download from http://www.picant.com/c2c/download.html It has fixed all bugs reported by users. Thanks to everybody who sent bug reports. It also features auto-generated delay functions and random number generator library. Regards, Pavel
  16. Just unzip the update in your SourceBoost installation directory. It will overwrite old compiler and some other files. Regards, Pavel
  17. Yes the problem has been fixed and relevant tests added to regression. Fix will be available in the next release (or update). Regards, Pavel
  18. union SR_type{ unsigned short result[2]; unsigned long Seed; }; SR_type ShiftRegister; This is not an error. Your code doesn't compile because it's invalid. Using struc/union type without struct/union keyword in C is an error (though it is not in in C++). Either the 'union' keyword in the declaration or "typedefed" version of this union should be used: union SR_type { unsigned short result[2]; unsigned long Seed; }; typedef union SR_type CSR_type; SR_type ShiftRegister; //error union SR_type ShiftRegister; //ok CSR_type ShiftRegister; //ok Regards, Pavel
  19. Ide will add .hex file at the end of command line. Any software that is good enough doesn't care about the order of command line options To workaround your programmer limitations create a .bat file that will rearrange the command line parameters and call your programmer software and use this .bat file as your programmer from ide. (I'd also send a mail to the support of the company that wrote your programmer software and ask them for a fix.) Regards, Pavel
  20. I assume you try to use BoostC 1.4 Have you unpacked BoostC zip file over SourceBoost installation? Regards, Pavel
  21. Shift operation in C2C is mapped to shoft assembly instruction and as result the number of shifts must be represented by a constant. If you replace 'stat' with a const it will compile. BoostC compiler does not have such limitations. Regards, Pavel
  22. It doesn't matter if a pragma DATA is placed into .c or .h file. It can be placed into any code that gets compiled. (It's even ok to use the same pragma DATA statement several time what may happen if it's located in .h file. In this case linker will issue warnings about overlapped DATA.) Regards, Pavel
  23. Sounds like yu didn't install SourceBoost IDE first but just try to use unzipped BoostC 1.4 update. You need forst to install SourceBoost IDE and than unzip BoostC 1.4 update in side the SOurceBoost IDE installation directory. (This is stated right next to BoostC 1.4 download link) Regards, Pavel
  24. Both BoostC and C2C are part of SourceBoost installation. They were designed to coexist on the same PC and are selected from SourceBoost IDE trough toolsuite facility. Regards, Pavel
  25. I don't plan to develop any conversion tool because the only differences that matters for migration is in: - 'const' vs 'rom' variable types. When the 'rom' storage specifier is implemented in BoostC it should be used instead of 'const' in C2C code; - variable names and labels in built-in assembler. Regards, Pavel
  • Create New...