Jump to content

Dave

Administrators
  • Content Count

    2,046
  • Joined

  • Last visited

Everything posted by Dave

  1. sdujolo, No this will not work as the interrupt routines are jumped to from 0x808 and 0x818, the routines themselves do not reside at these addresses. -rb 2048 ( or -rb 0x800 ) will relocated the whole program, including putting the required jumps in at 0x808 and 0x818 for the interrupt routines. Regards Dave
  2. The linker serious warning is there because unless you take special precaution you have a chance of corruption, and that seems to be what you are experiencing. If you post the code on the forum, then we all can take a look. Regards Dave
  3. Code like this is not recommended as the linker may end up putting the table in a place where it crosses a 256 byte boundary.You can improve the situation by placeing the code at a fixed address by using the @ symbol after the function name: void days(void)@0x1000 { ... Also returning the value in the w register also assumes that the compiler/linker hasn't used it for something else, which probably it has not on this occassion, but you need to be aware. Regards Dave
  4. It would be good if you used the voltmeter plugin to measure the voltage on those pins for both states. The LED plugin block needs to see a high enough voltage before it turns on. Regards Dave
  5. Yes you should worry. This warning could be ignored if you make sure that the function in question is never called at the same time from two different threads. Without ensuring this it would mean the function could get re-entered, and not only would local data used in the function become corrupted, but the return point (address) at the end of the function would also be corrupted. Regards Dave
  6. babos, The message generated by SysYield function means that your code has too many Sys_Yield function calls in it. Sys_Yield is also added into the code when any Novo RTOS functions that are preceded with Sys_ are called. And here is a quote from the Novo RTOS manual, giving a hint about this error: I hope that helps. Regards Dave
  7. babos, Not sure what you mean by this? Regards Dave
  8. apstrojny2, Why do you want to use this code instead of the supplied floating point library ? Regards Dave
  9. Try adding address of operator. memset( &pp,0,sizeof(PID)); Beware you floating point code will not compile, BoostC has a set of floating point libraries which have to be explicity called :-( Take a look at the supplied sample CircleArea. Regards Dave
  10. Don't know as never used cossack loader. You will probably need to shift the cod more than that so both reset and interrupt vectors can be patched. Regards Dave
  11. Reynard, Thanks for raising this. There is some room for improvement. Regards Dave
  12. I would say that is a good thing, problem solved without needing to wait for a reply Regards Dave
  13. Pino, This kind of problem is due to the fact that some of the ports have analogue functions and these functions are enabled by default. Add code cmcon = 0x07; to your program. Have a look at the data sheet for more information. Regards Dave
  14. MIGUELMAURICIOR OK I will. But first can you clear for me respect the file. I thought including the line (float.....) in the program it was enught, Is not it?What do you mean by (float.....) ?? If you want to use the floating point functions in your code you need to add #include<float.h> to the source code that use such functions (so the compiler knows about the floating point functions while compiling), and add the floating point library to the project so the actual code is linked in by the linker. Please take a look at the sample program including in the installation: CircleArea.__c Regards Dave
  15. You must have a file in you project that uses the floating point library. What files are in your project. Post the project on the forum and them someone can take a look. Sorry for not replying for a while. Regards Dave
  16. Dave

    Missing Forum Topic

    IanM You are right its looks like it has been deleted. I suspect someone or something posted some spam on the end of the topic and a moderator deleted the whole topic instead of just the post.We do have backups of the forum, so it must be possible to get it back, I just don't know how to restore or recover an individual topic. Regards Dave
  17. Looks like you need to add the PIC16 floating point library to the MPLAB project, you can find it in your SourceBoost installation directory in the lib folder. You may find the code size ends up too large for your target when you do this. Regards Dave
  18. MIGUELMAURICIOR, The PIC12F629 is really a PIC16 core device in PIC12 clothing. So please use the PIC16 compiler and linker options for this target. Regards Dave
  19. Have you followed the steps in the BoostC++ manual for MPLAB integration? Regards Dave
  20. lakehousetech, Yes it has been considered, but the job is not easy. Yes we are open to all ideas and feedback. Sorry for not replying before. Regards Dave
  21. dave.s, Interesting problem. When I tried to build your project I ended up with exactly the same error You are using a custom build of Novo RTOS, if you are using the recommended naming convention then you have built a library with 10 tasks (t10) , 10 events (e10) and timer size of 2 bytes (ts2) - novocfg_pic16t10e10ts2.h Here is what I did: 1) Built library with 10 tasks (t10) , 10 events (e10). 2) Copied the library into the boostc lib folder. 3) Built the pwm project, project build failed due to no ram block big enough for scheduler. The failure has occured because the memory required by the scheduler can't be fitted into the target devices memory. 4) Re-opened novocfg_pic16t10e10ts2.h and changed max number of semaphores and tasks both to 5. 5) Built pwm project again, and got Error:Linking externs failed, extern declaration and variable declaration types are different for variable:'scheduler'. The problem is caused by the novolib_pic16t10e10ts2.lib library and the project being built with two different versions of the header file novocfg_pic16t10e10ts2.h. I resolved the issue by re-building the novolib_pic16t10e10ts2.lib file and then rebuilding the project. So I would suggest your project contains files built with different versions novocfg_pic16t10e10ts2.h, this could be in any .lib file or .obj file. Here are a couple of tips for SourceBoost IDE: 1) Hold the cntrl key down while initiating the build to force a rebuild of all files in the project. 2) When adding lib files that reside in the default library file to the project, just type the lib name in the file name box and click OK. Now when the project is built it will look in the default lib folder automatically. Regards Dave
  22. davidb, Yes you are quite right, the missing coff information was added in V6.96 so it works in MPLABs.Work is currently being done on SourceBoost IDE debugger to fix this issue and allow evaluation of complex expression, so this will be fixed in a future release. Regards Dave
  23. Soft2, Is there a bug list for RC1 (that we can view)? A release date for RC2 or final release? Not trying to give you headache by asking... just curious. Thanks, Henry Yes. Its is on the version log page that is off the main download page:http://www.sourceboost.com/CommonDownload/VersionLog.html Regards Dave
  24. This issue has been fixed in BoostC V6.96, certain debug information was missing from the coff (debug file) generated by BoostC linker. Regards Dave
  25. Yes. These devices are essentially PIC16 core devices, so support can be readily added. Regards Dave
×
×
  • Create New...