mirror of
				https://github.com/0xFEEDC0DE64/arduino-esp32.git
				synced 2025-11-04 08:01:38 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
/* Customer ID=11656; Build=0x5f626; Copyright (c) 2003-2012 Tensilica Inc.  ALL RIGHTS RESERVED.
 | 
						|
   These coded instructions, statements, and computer programs are the
 | 
						|
   copyrighted works and confidential proprietary information of Tensilica Inc.
 | 
						|
   They may not be modified, copied, reproduced, distributed, or disclosed to
 | 
						|
   third parties in any manner, medium, or form, in whole or in part, without
 | 
						|
   the prior written consent of Tensilica Inc.  */
 | 
						|
 | 
						|
#ifndef _XTLOAD_API_H
 | 
						|
#define _XTLOAD_API_H
 | 
						|
 | 
						|
#include <stdint.h>
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
#define XTENSA_BYTES_PER_WORD 4
 | 
						|
#define XLOAD_ALL_CORES -1
 | 
						|
 | 
						|
typedef int core_number_t;
 | 
						|
typedef uint32_t xtload_address_t;
 | 
						|
typedef uint32_t xtload_word_count_t;
 | 
						|
typedef uint32_t * xtload_word_ptr_t;
 | 
						|
 | 
						|
/* These functions correspond one-to-one with xt-load script
 | 
						|
   commands. See the documentation for xt-load for their usage.
 | 
						|
 | 
						|
   There are however, several higher-level script commands--such as
 | 
						|
   load-elf-file--which don't have direct analogues here.  These
 | 
						|
   "missing" commands are essentially just macros that result in
 | 
						|
   several of these commands below.  Note that you can execute several
 | 
						|
   of these commands, then the results of a script, or vice-versa.
 | 
						|
 */
 | 
						|
 | 
						|
void xtload_bootloader_wake (void);
 | 
						|
void xtload_bootloader_sleep (void);
 | 
						|
void xtload_bootloader_done (void);
 | 
						|
void xtload_bootloader_not_done (void);
 | 
						|
void xtload_reset_and_cont (core_number_t core);
 | 
						|
void xtload_stall_and_reset (core_number_t core);
 | 
						|
#define xtload_reset_and_stall xtload_stall_and_reset
 | 
						|
void xtload_stall_and_target (core_number_t core);
 | 
						|
void xtload_ignore_and_stall (core_number_t core);
 | 
						|
void xtload_ignore_and_cont (core_number_t core);
 | 
						|
#define xtload_ignore_and_continue xtload_ignore_and_cont
 | 
						|
void xtload_read_words (xtload_address_t addr, xtload_word_count_t count);
 | 
						|
void xtload_zero_words (xtload_address_t addr, xtload_word_count_t count);
 | 
						|
void xtload_write_words (int swap, xtload_address_t addr,
 | 
						|
			 xtload_word_ptr_t ptr, xtload_word_count_t count);
 | 
						|
void xtload_setup_write_words (xtload_address_t addr, xtload_word_count_t count);
 | 
						|
void xtload_read_register (core_number_t core);
 | 
						|
 | 
						|
/* *I M P O R T A N T*
 | 
						|
   
 | 
						|
   The bootloader API calls this function whenever it outputs a word
 | 
						|
   to the bootloader hardware chain. 
 | 
						|
 | 
						|
   Because the API has no information about how the bootloader
 | 
						|
   hardware is connected to the host hardware, the user must
 | 
						|
   implement this function to write a word to the bootloader's register.
 | 
						|
 | 
						|
   A user's implementation might write the bytes to an Xtensa queue or
 | 
						|
   to a memory-mapped register.
 | 
						|
 | 
						|
   For example, xt-load uses this API just like any other client. Its
 | 
						|
   implementation of this function simply writes this word to an
 | 
						|
   output file.
 | 
						|
*/
 | 
						|
 | 
						|
void xtload_user_output_word (uint32_t word);
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
#endif /* _XTLOAD_API_H */
 | 
						|
 |