TOP Contributors

  1. MIKROE (2784 codes)
  2. Alcides Ramos (403 codes)
  3. Shawon Shahryiar (307 codes)
  4. jm_palomino (130 codes)
  5. Bugz Bensce (97 codes)
  6. S P (73 codes)
  7. dany (71 codes)
  8. MikroBUS.NET Team (35 codes)
  9. NART SCHINACKOW (34 codes)
  10. Armstrong Subero (27 codes)

Most Downloaded

  1. Timer Calculator (140883 times)
  2. FAT32 Library (73482 times)
  3. Network Ethernet Library (58268 times)
  4. USB Device Library (48465 times)
  5. Network WiFi Library (44077 times)
  6. FT800 Library (43630 times)
  7. GSM click (30521 times)
  8. mikroSDK (29249 times)
  9. PID Library (27196 times)
  10. microSD click (26888 times)
Libstock prefers package manager

Package Manager

We strongly encourage users to use Package manager for sharing their code on Libstock website, because it boosts your efficiency and leaves the end user with no room for error. [more info]

< Back
Example

Article: Ram corruption reasons in mP and mB

Rating:

5

Author: dany

Last Updated: 2018-08-02

Package Version: 2.0.0.0

Example: 1.0.0.0

Category: Other Codes

Downloaded: 712 times

Not followed.

License: MIT license  

Purpose: Make people aware about the ways of working that can introduce ram corruption
(and of course how to avoid it). In this document the many ways where it goes right are not mentioned, only the danger areas are highlighted.

No Abuse Reported

Do you want to subscribe in order to receive notifications regarding "Article: Ram corruption reasons in mP and mB" changes.

Do you want to unsubscribe in order to stop receiving notifications regarding "Article: Ram corruption reasons in mP and mB" changes.

Do you want to report abuse regarding "Article: Ram corruption reasons in mP and mB".

  • Information
  • Comments (3)
DOWNLOAD LINK RELATED COMPILER CONTAINS
Other PIC Compilers
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc

Example Blog

Purpose of this article: Make people aware about the ways of working that can introduce ram corruption (and of course how to avoid it). In this document the many ways where it goes right are not mentioned, only the danger areas are highlighted.  

The document in .pdf format

Please forward your suggestions or additions via the "comments" tab. The article is most possible not complete. All suggestions are wellcome!


2014-08-12: Added a few items: - no terminating zero in a string - "SizeOf" usage with "external" items.


2014-08-21: Added the mikroBasic examples...


2014-08-26: small addition into the "non terminating a string with zero" part...


2014-12-07 (v2.0): added a nasty one:  passing e.g. a byte as var parameter where a word parameter was expected and assigning a value to it inside the procedure.


2015-06-06: added again a nasty one: using '+' to concatenate a string passed to a function as parameter, see http://www.mikroe.com/forum/viewtopic.php?f=106&t=64658.Thanks Jim Keuneman!


2015-06-09: Updated the document again: added the "StrnCpy" issue and the concat (with +) issue for a var string + a const string.


2015-07-10: Added some "tips" (thanks Acko).

ALSO FROM THIS AUTHOR

Tool: Global variable usage

10

Shows, from a selected routine, the following items: - The parameter - The (used) local variables - The unused local variables (eliminated by optimiser) - The used global variables - Called routines For Pic, Pic24 and P32, both mP and mB

[Learn More]

I2c non blocking

10

Replacement routines for I2c1_Rd and I2c1_Wr but here with timeout, so no blocking any more when a device one tries to access is not present. The mE I2c library is still needed for the remaining I2c routines. Implemented also the code for controllers with 2 I2c's (e.g. P18F27K40).

[Learn More]

LCD

11

* 2 (alternative) libs to drive LCD's (4 bits connections): - One lib specific for 2x16, - one more generic (upto 4 rows, 16-20 chars per row). * A library to drive LCD via I2c (PCF2116 based, 1 to 4 rows, 12 or 24 chars per row * A library to drive standard LCD's via I2c * A library to drive standard LCD's via SPI.

[Learn More]