Jump to content

Search the Community

Showing results for tags 'boostc'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • PIC Embedded Programming
    • BoostC and Chameleon compilers programming
    • BoostC porting source code
    • BoostC++ compiler programming
    • BoostBasic compiler programming
    • Assembler programming PIC
    • Novo RTOS Programming
    • Hardware PIC
    • Enhancement Requests
    • Bug Reports

Found 8 results

  1. Hi, currently I have a program which uses 2 dimensional arrays to store lists of menu options. These reside in RAM, because Sourceboost wont support 2D rom arrays. (I am using SB 7.30). I now have to expand my menus and dont have the space for them in RAM - so I must re-work the code to place the data in rom. I can get around the 2D array problem with a little work - but in checking on my options in the forum, I see that someone mentioned a "single rom page limit" on rom arrays. Could you explain a little more please? Is this a limit "per "rom array" or on rom arrays, total? I could do with a more detailed explanation of rom data limits in the compiler, if you have the time... also any comments on what i am trying to do and whether the method is the best approach, etc
  2. Hi, I am having some issues with incorrect results from a signed 32bit multiply, which I am unable to reproduce with a concise project under mplab sim. Looking at the dissasembly, it seems as if the main and interrupt routines are calling the same function, causing corruption of the registers used. interrupt disassembly ! accumulator -= (temp * temp); 0x471: MOVF sendval, W 0x472: MOVWF a 0x473: MOVF 0x68, W 0x474: MOVWF 0x72 0x475: MOVF 0x69, W 0x476: MOVWF 0x73 0x477: MOVF 0x6A, W 0x478: MOVWF 0x74 0x479: MOVF sendval, W 0x47A: MOVWF b 0x47B: MOVF 0x68, W 0x47C: MOVWF 0x76 0x47D: MOVF 0x69, W 0x47E: MOVWF 0x77 0x47F: MOVF 0x6A, W 0x480: MOVWF 0x78 0x481: CALL 0x7 !********************** I beleive this is the mul32 function. 0x482: MOVF $ret, W 0x483: MOVWF 0x6D 0x484: MOVF 0x7A, W 0x485: MOVWF 0x6E 0x486: MOVF 0x7B, W 0x487: MOVWF 0x6F 0x488: MOVF 0x7C, W 0x489: MOVWF 0x70 0x48A: MOVF 0x6D, W 0x48B: SUBWF accumulator, F 0x48C: MOVF 0x6E, W 0x48D: BTFSS STATUS, 0x0 0x48E: INCFSZ 0x6E, W 0x48F: SUBWF 0x29, F 0x490: MOVF 0x6F, W 0x491: BTFSS STATUS, 0x0 0x492: INCFSZ 0x6F, W 0x493: SUBWF 0x2A, F 0x494: MOVF 0x70, W 0x495: BTFSS STATUS, 0x0 0x496: INCFSZ 0x70, W 0x497: SUBWF 0x2B, F and in main: ! accumulated_value *= -1L; 0x365: MOVF accumulated_value, W 0x366: MOVWF a 0x367: MOVF 0x21, W 0x368: MOVWF 0x72 0x369: MOVF 0x22, W 0x36A: MOVWF 0x73 0x36B: MOVF 0x23, W 0x36C: MOVWF 0x74 0x36D: MOVLW 0xFF 0x36E: MOVWF b 0x36F: CLRF 0x76 0x370: DECF 0x76, F 0x371: CLRF 0x77 0x372: DECF 0x77, F 0x373: CLRF 0x78 0x374: DECF 0x78, F 0x375: CALL 0x7 !**************************** same function call. 0x376: MOVF $ret, W 0x377: MOVWF accumulated_value 0x378: MOVF 0x7A, W 0x379: MOVWF 0x21 0x37A: MOVF 0x7B, W 0x37B: MOVWF 0x22 0x37C: MOVF 0x7C, W 0x37D: MOVWF 0x23 Can anyone weigh in on whether this is a bug, or whether I should keep looking? Thanks. EDIT: putting intcon.GIE = 0, intcon.GIE=1 instructions around the main.c multiply solves the issue, so I'm almost certain this is a bug. Older versions of boostc used to flag this situation during compilation. I am using PIC16F1823, my main and interrupt functions are in different files (main.c and interrupt.c respectively.)
  3. Boostc Licence In Win7 Pro

    Just purchased the full version of the BoostC compiler. I was promptly email the key. I have run preg.exe to register the license and it reported back that both pic16 and pic18 were successful. When i attempt to run boostc_pic16.exe from the command line i am informed that I am using an unregistered license (see below). ----------------------------------------------------------------------------------------------------------------------------------------------- C:\Program Files (x86)\SourceBoost>boostc_pic16.exe BoostC Optimizing C Compiler Version 7.22 (for PIC16 architecture) http://www.sourceboost.com Copyright© 2004-2014 Pavel Baranov Copyright© 2004-2014 David Hobday Single user Lite License (Unregistered) for 0 node(s) Limitations: PIC12,PIC16 max code size:2048 words, max RAM banks:2, Non commercial use only ----------------------------------------------------------------------------------------------------------------------------------------------- I have tried installing/reinstalling, installing the default Sourceboost IDE key, messed around with the DEP settings as others have suggested on the forums all to no avail. Does anyone have an idea of what I might be missing? I have been banging my head against the keyboard for over an hour know. It should not be this difficult to register a program.
  4. Hi, I am using boostC with MplabX for PIC18F67K22. I have tried to : 1. Use fixed address like " int x@0x100" . This has worked for me previously in Mplab. Do I need to include any libraries to make this work in MplabX? 2. When I add an interrupt service routine as instructed in the boosC manual " void interrupt ( ) " the compiler shows error on all code lines in the isr. it does not see it as an interrupt. Is there a particular way to declare this in the MplabX environment? 3. Even when I include the "string.h" directive, the string length function "strlen(string)" is not recognised by the compiler. Hence the corresponding line is highlighted as an error. Thanks Bade I also tried including all these files below, but it still didn't work. #include <stdio.h> #include <stdlib.h> #include <system.h> #include <boostc.h> #include <BoostCPic18.h> #include "PIC18f67k22.h" #include <float.h> #include <eeprom.h> #include <string.h>
  5. Hi guys, how come that if I change the clock rate in the SourceBoost IDE simulator and then run the code with some delay_ms() functions, the "ticks counter" in the bottom of the screen still gives me the same number? For example I've got delay_ms(40) and I still get cca 156k ticks after that no matter how big the clock rate is... could you give me a hint why is that so? Thanks so much, midin
  6. I am trying to send a 16bit data with MSB first over serial comm. How can I get around sending the individual bits 15-0 using the boostC compiler using the sample below e.g. SIN = data.15……SIN = data.0. void play_AUDIO_COMMAND(unsigned short data) { for (unsigned char loop =15; loop>=0; loop--) { SIN = data.loop;// Compiler gives error SCLK = HIGH; delay_us(50); SCLK = LOW; } SCLK = HIGH; } Error message: Main1.CAudio.C(47:17): error: unexpected '.' operator Audio.C(47:12): error: failed to generate expression Audio.C(47:12): error: invalid operand 'data.loop' Audio.C(47:10): error: failed to generate expression Thanks Bade
  7. When I call the sleep function in boost C, using mplab IDE, the PIC does not go to sleep.I have tried inline assembly as well and still the PIC does not sleep.I observed the current consumption when the sleep function is called and still no current drop. I also included the "boosts.h" and it still does not work. Has anyone used the sleep routine and it worked? Or is this problem PIC related? Thanks Badejo
  8. Mplab 8.80.00 + Boostc 7.04 Paths Issue

    Hi All, Thanks for reading this. I have the followign directory structure: \project \build \src In my src directory I got all my source files. In the build directory I got the MPLAB workspace, project etc. When try to build the project I get an error telling me that it can't find the first compilation unit in the src directory, error.c [yes I do get the irony ], I have tried adding the files to the project both by relative path and absolute path, it makes no difference. If I put all the source files and the project/workspace files in one flat directory everything works. Here is the output from the build tab: Questions: Is there a verbose mode in the IDE to see exactly how the compiler is getting called? The reason for asking this is that I have tried calling the compiler with the absolute path to the source file and it works from the command line, I have also tried relative paths from the command line and it still works. Has anyone else come accross this one and perhaps would be kind enough to share some thoughts? Thanks very much in advance. Cheers, Sakis
×