how to call malloc() or free() in interrupt function

my problem is how to use malloc or free function in interrupt function,because the function like malloc() or free() is non_reentrant.But i have to do it in interrupt function to save memory. what shall i do? please help me!
i use timer0 to free the memory when memeory is no applied,but after three times,the timero is closed auto.
the warning is:
multi call to a segment free() or malloc();
i describe my algorithm as below:
1)i make the data to link list firstly;
2)in timer0, i will write the node of the link list to CAN bus buffer, after it ,i will free the node.but the timer0 just work 3 times,when it gets the fourth ,the timer0 is closed auto, what shall i do??
regards!!
thanks !!

More questions in this forum