kopia lustrzana https://github.com/stlink-org/stlink
				
				
				
			Implement _stlink_usb_write_mem32|8
Signed-off-by: Karl Palsson <karlp@tweak.net.au>pull/29/head
							rodzic
							
								
									173831d592
								
							
						
					
					
						commit
						37f3d97e05
					
				|  | @ -171,13 +171,37 @@ void _stlink_usb_version(stlink_t *sl) { | |||
| } | ||||
| 
 | ||||
| void _stlink_usb_write_mem32(stlink_t *sl, uint32_t addr, uint16_t len) { | ||||
|     DD(sl, "oops! no write32 support yet, wanted to write %d bytes to %#x\n", | ||||
|             len, addr); | ||||
|     struct stlink_libusb * const slu = sl->backend_data; | ||||
|     unsigned char* const buf = sl->q_buf; | ||||
|     unsigned char *cmd_buf = sl->c_buf; | ||||
| 
 | ||||
|     memset(cmd_buf, 0, STLINK_CMD_SIZE); | ||||
|     cmd_buf[0] = STLINK_DEBUG_COMMAND; | ||||
|     cmd_buf[1] =  STLINK_DEBUG_WRITEMEM_32BIT; | ||||
|     write_uint32(cmd_buf + 2, addr); | ||||
|     write_uint16(cmd_buf + 6, len); | ||||
|     send_only(slu, cmd_buf, STLINK_CMD_SIZE); | ||||
| 
 | ||||
|     assert((len & 3) == 0);  | ||||
|     stlink_print_data(sl); | ||||
|     send_only(slu, buf, len); | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| void _stlink_usb_write_mem8(stlink_t *sl, uint32_t addr, uint16_t len) { | ||||
|     DD(sl, "oops! no write8 support yet, wanted to write %d bytes to %#x\n", | ||||
|             len, addr); | ||||
|     struct stlink_libusb * const slu = sl->backend_data; | ||||
|     unsigned char* const buf = sl->q_buf; | ||||
|     unsigned char *cmd_buf = sl->c_buf; | ||||
| 
 | ||||
|     memset(cmd_buf, 0, STLINK_CMD_SIZE); | ||||
|     cmd_buf[0] = STLINK_DEBUG_COMMAND; | ||||
|     cmd_buf[1] =  STLINK_DEBUG_WRITEMEM_8BIT; | ||||
|     write_uint32(cmd_buf + 2, addr); | ||||
|     write_uint16(cmd_buf + 6, len); | ||||
|     send_only(slu, cmd_buf, STLINK_CMD_SIZE); | ||||
| 
 | ||||
|     stlink_print_data(sl); | ||||
|     send_only(slu, buf, len); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -40,11 +40,26 @@ int main(int ac, char** av) { | |||
|         stlink_read_mem32(sl, CM3_REG_FP_CTRL, 4); | ||||
|          | ||||
|         // no idea what reg this is..  */
 | ||||
|         /*     stlink_read_mem32(sl, 0xe000ed90, 4);
 | ||||
|         //     stlink_read_mem32(sl, 0xe000ed90, 4);
 | ||||
|         // no idea what register this is...
 | ||||
|         /*     stlink_read_mem32(sl, 0xe000edf0, 4);
 | ||||
|         //     stlink_read_mem32(sl, 0xe000edf0, 4);
 | ||||
|         // offset 0xC into TIM11 register? TIMx_DIER?
 | ||||
|         /*     stlink_read_mem32(sl, 0x4001100c, 4); */ | ||||
|         //     stlink_read_mem32(sl, 0x4001100c, 4); */
 | ||||
| 
 | ||||
|         write_uint32(sl->q_buf,0x01234567); | ||||
|         stlink_write_mem32(sl,0x200000a8,4); | ||||
|         write_uint32(sl->q_buf,0x89abcdef); | ||||
|         stlink_write_mem32(sl,0x200000ac, 4); | ||||
|         stlink_read_mem32(sl, 0x200000a8, 4); | ||||
|         stlink_read_mem32(sl, 0x200000ac, 4); | ||||
|          | ||||
|         write_uint32(sl->q_buf,0x01234567); | ||||
|         stlink_write_mem8(sl,0x200001a8,3); | ||||
|         write_uint32(sl->q_buf,0x89abcdef); | ||||
|         stlink_write_mem8(sl, 0x200001ac, 3); | ||||
|         stlink_read_mem32(sl, 0x200001a8, 4); | ||||
|         stlink_read_mem32(sl, 0x200001ac, 4); | ||||
|         | ||||
| 
 | ||||
|         printf("-- status\n"); | ||||
|         stlink_status(sl); | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 Uwe Bonnes
						Uwe Bonnes