Jump to content

John S

  • Posts

  • Joined

  • Last visited

Profile Information

  • Gender
  • Location
  • Interests
    Money, Peace

John S's Achievements


Regular (2/6)



  1. Hi, Is anyone getting support from SourceBoost or able to buy license? Thanks John
  2. I have tried so many time and asked the same question elsewhere. Wonder if Source Boost is dead or bought by someone else?
  3. Hi Is Source Boost still alive? 🤔 thanks
  4. I get the same message 'Product does not exist! At least one of the requested products does not exist.' I will try emailing support@sourceboost.com
  5. Thanks Jorge, I have read the manual but it I can't find the explanation for using the -lib in command line mode. Page 24 gives only this info Switches for making libraries: -lib make library file from supplied .obj and .lib files -p name project (library output file) name Can I make lib file from the *.obj file that has been already created in my project? BTW I have never used Sorceboost IDE, anyway I will give it a try. Thanks John For example in GCC for ARM linux gcc -c FlashMem.c (to create obj file) ar rvs FlashmemLib.a FlashMem.o (to create library file)
  6. Hi, Can someone show me how to make *.lib file from my C file. I need to know this to increase the compile time. Cheers John
  7. Thanks Reynard, I forgot to mention that calling the same function works in another project but causes problem in this. I'm sure commenting out that line solved the problem. btw, declaration for the function is bit Read_BlockOfData(unsigned long ulAddr, unsigned char cBlockSize, char *buff) PIC -> 18F67K22 Compiler -> Sourceboost 7.21 IDE -> MPLAB 8.87 OS -> Windows 7, 64bit Thanks John
  8. Hi Reynard, I narrowed down to the line of code which is causing this error. As you can see from the attached code, commenting the following line solves the problem // Commenting the below line fixes the issue. Read_BlockOfData(un.lData, (unsigned char)uWorkVal, Ptr); union temp { unsigned char byte[4]; unsigned long lData; }un; un.byte[0] = rx_data_buf_Ftdi[1]; // LSbyte un.byte[1] = rx_data_buf_Ftdi[2]; un.byte[2] = rx_data_buf_Ftdi[3]; un.byte[3] = 0; uWorkVal = rx_data_buf_Ftdi[4]; // Commenting the below line fixes the issue. Read_BlockOfData(un.lData, (unsigned char)uWorkVal, Ptr); thanks John
  9. Hi, I get the following error, What is this? 'Internal Error: Data Type not found id:0x1000253A:0x006:0x00000883' Any solution? Thanks John
  10. Thanks Pavel, But what is the difference between CALL and GOTO ? I use GOTO instruction to jump to bootloader to main and vice versa.. Many Thanks
  11. Thanks Jorge, But still I'm not able to get it working. Here is an example of what I'm trying to achieve. I want to call a function in my Main code which is declared in my bootloader at an specific address. in my BOOTLOADER the function is mapped to address 0x070 void Message(char *str) @0x070 { do{ while(!txsta1.TRMT); // Wait till Tx Reg is free txreg1 = *str; // Load the data into the TxReg str++; }while(*str != '\0'); // Loop till end of String } In my MAIN application I use function pointer void (*foo)(char*); void main() { while(1) { if(recByte == 'T') { foo = 0x70; // address of the function foo("Test Message"); recByte = ' '; } } } Everything compiles ok but I get a warning Warning: function never returns: '__fptr' Then I tried foo = ((*)(char*))0x070; foo("Test Message"); Still I get error. Then I tried using typedef typedef void (*FnPtr)(char*); FnPtr foo; foo = (FnPtr)0x70; Still I get same warning. But if I move the function void Message(char *str) @0x070 to main application, and use foo = Message; the code works. I'm I doing something really stupid or is there anyother way to point to an address of a function? Many Thanks John
  12. Jorge, i tried as you said but no luck, In fact this is what microchip recommended. I managed to solve the issue with a power cycle circuit(pic attached) but it may be not 100% correct way of doing. By setting the BOR to above 3V the circuit worked for me. Thanks for all your input John
  13. Thanks Reynard for your reply. Yes I read about the issues with I2C on PIC18F4550. The PIC I use is 18F67K22. I tried toggling SPEN, still same. When I tried to initiate a START condition, bus collision pir2.BCL1IF is set. (no slaves on the bus, just a master). Reset is occurred by watchdog timer cause code blocks at while (!pir1.SSPIF); Thanks John
  14. Hi, Apologies first, cause this question is more about hardware I guess. I have my PIC micro board working. But when I took it to EMC test, it failed on ESD. On 8KV ESD the PIC freezes, but Watch timer RESETS the pic, which is good. BUT after the reset the I2C won't work. There is no activity on clk or data line. If I power cycle the board then I2C works again. The two I2C slaves connected to PIC is held in reset for a while once PIC is reset, so it can't be the slave device. Any solution? Thanks John
  • Create New...