1 /* 2 * Payload initialisation functions. 3 * 4 * Copyright (C) 2018 Paul Boddie <paul@boddie.org.uk> 5 * 6 * This program is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 #include <stdint.h> 21 22 /* Relocate the .data section's contents to initialise mutable structures. */ 23 24 void relocate_data(uint32_t *original, uint32_t *current, uint32_t size) 25 { 26 /* Reference stored content as values. */ 27 28 uint32_t *source, *target; 29 30 /* Copy data from program memory to the relocated data area in RAM. */ 31 32 for (source = original, target = current; source < original + size; 33 source++, target++) 34 35 *target = *source; 36 }