Jump to content

Pavel

Administrators
  • Content Count

    1,471
  • Joined

  • Last visited

Everything posted by Pavel

  1. You don't seem to have a function asm(char*); declared in your code. If what you intended to do is to embed assembly into C code than you did it wrong. Please check the compiler help which explains how to use assembly inside C code. Regards, Pavel
  2. Nice spot. An inline function must be declared with a body. Now fixed. Compiler will report an error for inline function declaration without a body. Regards, Pavel
  3. I looked more into this issue and came to conclusion that this code is invalid and BoostC should report an error. In the expression "ostring= "12345";" a data type char* is assigned to data type char[5] but this is't a legal conversion. I will fix compiler so that it won't allow this. (BTW I checked with MSVC++ and it doesn't compile such code either). Regards, Pavel
  4. The useage scheme for pointers, arrays and strings works a bit differently than in your code. When you write: char arr[] = "abc"; compiler allocates 4 bytes of memory named 'arr' and copies 'a', 'b', 'c' and zero there. This is a part of declaration (btw you don't have to specify dimension here) If you write : char *ptr = "abc"; compiler allocates unnamed buffer 4 bytes long, copies 'a', 'b', 'c' and zero there and than assigns address of this memory to 'ptr'. When you declare an array and than assigns string to it compiler allocated memory for array, that allocates memory for string, than copies string to array: char arr[4]; arr = "abc"; This should work but is extremly inefficient memory wise. Please consider changing your code. Regards, Pavel
  5. Fixed. Fix will be available in 1.8. Regards, Pavel
  6. Which bootloader does work? Can you post URL where to find it? Regards, Pavel
  7. For which target code was generated? Do you know which define is wrong? Regards, Pavel
  8. Another cause of such error may be too short file names. The Hi-Tech COFF file format that stores all debug information and used by BoostC has this limitation and doesn't work well if file name base is shorter than 3 characters. We plan to fix this tweaking COFF file. Regards, Pavel
  9. BoostC 1.7 Alpha update is available to download from http://www.picant.com/c2c/download.html. All bugs reported since the previous release are fixed. Thanks to everybody who sent us their feedback. This update must be installed over SourceBoost 5.7 installation. Regards, Pavel
  10. Fixed. Fix will be available in 1.7 update. Regards, Pavel
  11. This was a compiler bug in '<' operation . Fixed now. Fix will be available in soon to be released 1.7 upgrade. Regards, Pavel
  12. ... INCF read_eeprom_string_2_count, F ... The instruction above increments the 'count' value. SOmething else must be wrong. Do you have a project where this problem can be reproduced? Regards, Pavel
  13. We plan to release 1.7 before the next weekend (Nov 14). The 'rom' feature won't make it into 1.7 though Regards, Pavel
  14. Data can be stored in code memory using 'rom' storage specifier in variable declaration. This feature is not yet supported in BoostC though: //data will be stored in code memory (not yet implemented in BoostC 1.6) rom char arr[] = { 1, 2, 3, 4 }; Regards, Pavel
  15. Another way to save data and code space and make code flexible is to use function templates. This feature was borrowed from C++. It's not fully supported in BoostC yet but the part that is supported can already help. For example have a function that works with a port, want to have the port selectable at compile time and don't need it to be selectable at run time. Than code like this will help you ans save a lot of code and data space: template <char A> void foo( void ) { char port@A; ... //some code that operates with port } void main( void ) { foo<5>(); //function 'foo' will deal with port A ... } Note though that because function overloading doesn't work yet it won't be possible to use same template with different template arguments: ... foo<5>(); foo<6>(); //this won't link ... Regards, Pavel
  16. Preprocessor is ok. That's your code that's wrong. I tried it with MSVC and GCC and both reported an error. Regards, Pavel
  17. The expression "cout << DoSomething(myValue);" doesn't have any destination and doesn't change any variable in the code. That's why compiler optimizes it out. This optimization happens at parsing stage when variables aren't known yet. This is why you don't get any error if cout isn't declared. Regards, Pavel
  18. Fixed. Fix will be available in 1.7 Regards, Pavel
  19. Fixed. Fix will be available in 1.7 Regards, Pavel
  20. Fixed. Fix will be available in 1.7 Regards, Pavel
  21. Fixed. Fix will be available in 1.7 Regards, Pavel
  22. Pavel

    Compiler Error?

    Fixed. Fix will be available in 1.7 Regards, Pavel
  23. The script still left some errors: ... #define _OSC_ECIOSWPLL_10xFD ... Regards, Pavel
×
×
  • Create New...