version issues

I need some help understanding the changes between ver 19 and ver 20

An application evolved fitting comfortably on a Duemilanove now requires a Mega to accommodate I/O and memory needs. We do need to put some additional soil test instruments in the field this spring using the software and controllers developed last summer. The application from last summer has developed some problems.

It compiles with v19, loads and runs fine on a Duemilnove. It compiles fine and loads with 20, 21 & 22 but hangs almost immediately. It acts about the same on a UNO.

The disassembled files are some different. The immediate obvious difference is that 19 contains the code for malloc, calloc and free. Clearly something significant happened with the move to ver 20. Clearly I can scrounge up enough Duemilnove boards to get by, but not understanding the problem is upsetting. Not being able to use the UNO boards adds to the frustration

the lengths of the hex files are:
ver 19 57 k (works)
ver 22 54 k don't work
ver 22 60 k mega 1280 probably works but the shields are not configure correctly to interact

I would post code but without the right logger and additional circuitry, they all hang. The code works fine with a Due. and ver 19

the includes:

#include <SdFat.h>
#include <SdFatUtil.h>
#include <Wire.h>
#include <RTClib.h>
#include <EEPROM.h>

Any thoughts?

I would check the release notes for V22 to see if any of the libraries you are using have been revamped.

From my limited experience almost every Arduino crash has come from not having enough RAM space for all the variables. Do you have any variables that could be declared 'const'? Perhaps if you made your code available to view we could suggest some memory saving (or spot a latent error).

I was becoming a bit desperate so I scraped as much text out of various messages as possible. Did the trick, it works with V22 on Duemilanoves and UNOs. Some of the text really should be included. I will put some back in until problems show up again.

Perhaps someone will explain the changes made in the move from 19.

jc