I assume DMAC means DMA controller? I hope you dont assume DMA is free, sometimes it costs less than not using it sometimes it costs more. Know your system.
RS232 is a voltage level thing not a protocol, defines what a 1 and a 0 is not what the stream of them means.
There are many solutions you can do a ppp or slip thing, or just do your own. You can do xmodem, y or z or kermit, etc. Depends on if you want data going both ways.
As Dmitry commented, a typical approach is marker, length, payload and some sort of mathematical check on the packet. And there are many ways to do the sync pattern and the math. ppp uses a specific character but if that character shows up elsewhere in the packet then they do this two character thing, just makes for more processing.
So if bidirectional, then use some sort of sync pattern, length, payload, crc scheme which you can invent. The DMA controller can be used if desired as you could prep the data in ram first then just shoot it over.
If just point to point no need to overcomplicate with ppp/slip or something like that.
You can get rid of length if you want to make everything the same length. You can arguably get rid of the sync pattern too, but the crc or checksum or other is important IMO. The sync pattern even if a single byte makes re-syncing much faster, less processing.
The combination of header, length, payload, and checksum allows for you to cover short or modified packets, not perfect of course, no system is, but it covers the common problems of corrupt data and if you need to stop short mid packet. Whether or not you can detect a fractional packet and re-sync on the next packet (wanted AAAABBBBCCCC got AABBBBCCCC did I resync on BBBB or have to go out of sync and lose BBBB and resync on CCCC) depends on the software design.