Jump to content

Pavel

Administrators
  • Content count

    1,451
  • Joined

  • Last visited

Everything posted by Pavel

  1. You access function argument correctly. Must be something else that causes the problem. Have you included system.h? If W is undefined you'll get same error (to check replace W with 0)
  2. A TDF file is required for build but only the core data from it is used. You need to have a TDF file that has at least minimal data like in _PIC18minimal.TDF There is no document that lists all options that can be used in TDF. You need to check the existing TDF files for examples. Regards, Pavel
  3. You can use your v7 license key with SourceBoost v6. Regards, Pavel
  4. Error with PIC18F25K40

    Well spotted. This error affects several other recently added targets as well. The fix you provided is correct too. Affected files: PIC18F24K40.TDF PIC18F25K40.TDF PIC18F26K40.TDF PIC18F27K40.TDF PIC18F45K40.TDF PIC18F46K40.TDF PIC18F47K40.TDF PIC18F65K40.TDF PIC18F66K40.TDF PIC18F67K40.TDF PIC18LF24K40.TDF PIC18LF25K40.TDF PIC18LF26K40.TDF PIC18LF27K40.TDF PIC18LF45K40.TDF PIC18LF46K40.TDF PIC18LF47K40.TDF PIC18LF65K40.TDF PIC18LF66K40.TDF PIC18LF67K40.TDF
  5. Chameleon has much better template support including meta programming. It does not however support member functions including constructors and destructors or inheritance (inheritance is not too difficult to add but probably does not make much sense if member functions are not supported). Regards, Pavel
  6. Chameleon has a number of advantages over BoostC. Some technical differences: - faster compilation - native floating point support - native bitfield support Current release of Chameleon does not have any license limitations and is free. Another important difference is in the way how compiler generates code. In BoostC user can't control this while in Chameleon almost all aspects of code generation can be customised by editing system headers located in include\sys directory. Regards, Pavel
  7. Can't register the licence?

    Sorry about the confusion and let's try to sort this out. What product is the key for? Based on the screenshot that you provided it seems that the product is BoostC Pro but you try to register either plugins or IDE. Keys are valid only for products they were issued for and will not work with other products. Please email details to support@sourceboost.com and we'll sort this out. Regards, Pavel
  8. If your license is for version 7.x it should be valid for 6.x as well. What is wrong with your 7.x installation? Regards, Pavel
  9. Looks like a bug. Will take a look. Pavel
  10. Plugins have not changed and we don't plan to release 7.41 plugins. You can use 7.40 plugins with this release.
  11. Limited support means that only core information that is necessary to compile and debug for this target is included into system headers and TDF files:- only core registers are defined in the system header files, if you need other registers you need to add your own defines to either your code or system header - full config data is added to the system headers (PIC16) or TDF(PIC18) files - target architecture is fully described in the TDF files but non-core registers and register groups are not. You are welcome to add missing information. To compile it's only necessary to add it to system header files. Missing information in the TDF files is used in debugging under SourceBoost IDE and if you use Mplab or Mplab X you don't need it. For example look at the Port B support that is not defined in the limited support targets but is fully supported in PIC18F8722. This target has the following information in its system header file PIC18F8722.h (used in compilation): ... #define PORTB 0x00000F81 ... volatile char portb @PORTB; .. and in PIC18F8722.tdf file (used for debugging): Configure PORTB { // create PinNames = "RB0|INT0","RB1|INT1","RB2|INT2","RB3|INT3|ECCP2|P2A","RB4|KBI0","RB5|KBI1|PGM","RB6|KBI2|PGC","RB7|KBI3|PGD"; } RegisterSF PORTB { Description = "PORTB",""; Address = F81h; BitNames = "RB7","RB6","RB5","RB4","RB3","RB2","RB1","RB0"; }
  12. The reason we use xlaunch.exe instead of the actual compiler in the MplabX plugin is to allow different programming languages to be used in the same project. Xlaunch analyses the command line and based on the extension of the input source file launched a relevant compiler For example a project can consist of .c, .c++ and .bas files an when compiling xlaunch.exe will use C, C++ and Basic compilers to compile these files.
  13. When you assign an integer to a float like in float fnum = 0x41bba752; you expect compiler to do copy number into the float directly byte by byte. This is not what's happening. Behind the scene compiler generates code like fnum = float32_from_int32(1102817106); so you get the same value but presented as a float.
  14. Use either this: asm { movlw 0x52 movwf _fnum+0 movlw 0xa7 movwf _fnum+1 movlw 0xbb movwf _fnum+2 movlw 0x41 movwf _fnum+3 } or this: union { unsigned long l; float f; } f; f.l = 0x41bba752; fnum = f.f;
  15. Check http://forum.sourceboost.com/index.php?showtopic=1456&do=findComment&comment=20995
  16. This story is just an example what happens sometimes when users order software from us but use unreliable ISPs: Last week we got an upgrade order from one of our customers. Same day we sent this customer a mail with a product license and key. This mail wasn't delivered because this customer's ISP filtered it out as spam. This ISP sent us a mail where it explained what happened and asked to send another mail to a special address to remove us from their spam filter. We sent another mail to this special address. Guess what happened... We recieved another response back that said that this mail is spam too and it wasn't delivered either. This week we got mail from this customer who asked what happened with his order. We replied and explained the situation but you can guess now what happened next. This mail was also filtered out by customer's ISP. Conclusion. If you have ordered a product and don't get the license mail from us this most likely means that something is wrong with your e-mail account or ISP. (We always contact our customers who bought our software and during several years we sell software it happened only two or three times when customers didn't get their license mails because of our fault.) Try to send us a mail from different account or send a personal message to Dave or Pavel in this support forum. Regards, Pavel PS: We've just got another customer who sends us mails from yahoo mail account and though we reply back to all his mails it seems that he doesn't recieve them and sends us the same question over and over again.
  17. Make sure you start preg.exe as administrator and make sure you select the correct product inside the preg.exe dialog (for example a BoostC++ key won't work with BoostC). If this fails try to register from command line. This can be done for any product that is an executable (so this method won't work for plugins and those are DLLs).Do do this: - open command prompt as administrator - navigate into SourceBoost installation directory - start the product executable followed with the "register" command line argument. For example for the BoostC compiler issue the command line like : C:\Program Files (x86)\SourceBoost>boostc_pic18.exe register This will bring up a dialog where you enter your registration name and license key and press OK. If registration was successful you will get a relevant prompt - Again it's important to use these steps as administrator, if not you still may bet an successful prompt but the registration won't be applied properly If still unsuccessful send a mail to support@sourceboost.com and quote your registration name and license key and briefly describe the problem and what you have done. UPDATE: We migrated on a new faster web server and seems that our key generation system got broken If you experience similar problem please email to support@sourceboost.com and we will sort it out. Sorry about the confusion. Regards, Pavel
  18. That's sounds like a compiler bug. We'll look into this. Chameleon does not support C++ classes but has a very good support of data and function templates up to the point when template based meta programming can be done. In fact its code generation logic is based on this. For an example check very bottom of include\sys\sys_assign.h file where meta programming is used to generate code for assigning structs. It also supports auto data type and explicit enum types (like in the latest C++ standard). From the top of my head: - rom type specifier is ignored - dynamic memory allocation is not supported (new/delete) - complex array and struct initialisation works a bit differently - system header system.h does not have to be included (it's included behind the scene) - Chameleon does support bit fields - Chameleon does support floating point data types natively Pavel
  19. You can download support files for PIC18F6xK40 from: http://www.sourceboo...PIC18F6xK40.zip 7.40 also includes instructions how to add support for new targets. Look into the readme.txt files inside include and config directories and how_to_add_new_target.txt file in the root of SourceBoost installation. Pavel
  20. Currently the Chameleon compiler is in beta stage and does not have a corresponding MplabX plugin yet. The only way I can think of how to work around this is to save the BoostC compiler executable in a safe place, rename the Chameleon executable into BoostC and use MplabX with BoostC plugin. The command lines between these 2 is mostly compatible and this makes it possible for this approach to work. Pavel
  21. A new version of SourceBoost 7.30 is ready and available to download from http://www.sourceboost.com What's new: 1. Improved compiler speed. Now it is about 3x faster. 2. Added IP library that implements the following protocols: ARP, ICMP (ping only), IP, UDP, DHCP (client) and simplified UDP sockets. 3. General improvements of BoostWizard 4. Added support for board files into BoostWizard 5. Added support for binary semaphores into Novo 6. Added UDP demo project (requires Novo libraries from goodies.exe) 7. Added support for 16F1459 and 16LF1708 8. Fixed code generation for left shift of byte by 16 9. Fixed error when result of complex expression that used left shift wasn't promoted to 32 bits 10. Added detailed description of long promotion into compiler help Regards, Pavel
  22. No difference. GOTO is ok as well. My point was to use built-in assembler rather than C but whatever you use CALL or GOTO doesn't matter. Regards, Pavel
  23. I's tricky to call a function that is not linked to an application. The way to proceed is to use built in assembler like 'call 0x70'. The only issue with this approach is that it's impossible to use call arguments so the solution is to declare a fixed address array to pass data to your bootloader function. Regards, Pavel
  24. Please explain why your method is more preferable? Regards, Pavel
  25. There is no known way to do this under MPLAB And MPLABX should work just fine
×