Jump to content


  • Content Count

  • Joined

  • Last visited

Everything posted by Pavel

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. I wasn't able to reproduce the problem. Can you provide a source file (simplified if possible) that will exibit this problem. Regards, Pavel
  7. I see what's wrong. Fix will be available is soon to be released SourceBoost 5.7 & BoostC 1.6 release. Regards, Pavel
  8. 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
  9. 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
  10. 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
  11. Just unzip the update in your SourceBoost installation directory. It will overwrite old compiler and some other files. Regards, Pavel
  12. Yes the problem has been fixed and relevant tests added to regression. Fix will be available in the next release (or update). Regards, Pavel
  13. 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
  14. 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
  15. I assume you try to use BoostC 1.4 Have you unpacked BoostC zip file over SourceBoost installation? Regards, Pavel
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. Fixed in BoostC 1.4 Alpha release. Regards, Pavel
  22. BoostC 1.4 Alpha has been released. We tried to fix all issues reported since 1.3 release. Thanks to everybody who contributed with bug reports. The updated compiler is available to download from http://www.picant.com/c2c/download.html Regards, Pavel
  23. Both problems are fixed in BoostC 1.4 Alpha release. Regards, Pavel
  24. Fixed in BoostC 1.4 Alpha release. Regards, Pavel
  25. You are right. Error was in left shift code generation. Now fixed in BoostC 1.4 Alpha release. Regards, Pavel
  • Create New...