mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			Merge pull request #3994 from theotherjimmy/fix-output-ext
Use OUTPUT_EXT to pick binary typepull/4128/head
						commit
						fdf1ed623e
					
				| 
						 | 
				
			
			@ -386,12 +386,9 @@ class TEENSY3_1Code(object):
 | 
			
		|||
    @staticmethod
 | 
			
		||||
    def binary_hook(t_self, resources, elf, binf):
 | 
			
		||||
        """Hook that is run after elf is generated"""
 | 
			
		||||
        from intelhex import IntelHex
 | 
			
		||||
        binh = IntelHex()
 | 
			
		||||
        binh.loadbin(binf, offset=0)
 | 
			
		||||
 | 
			
		||||
        with open(binf.replace(".bin", ".hex"), "w") as file_desc:
 | 
			
		||||
            binh.tofile(file_desc, format='hex')
 | 
			
		||||
        # This function is referenced by old versions of targets.json and should
 | 
			
		||||
        # be kept for backwards compatibility.
 | 
			
		||||
        pass
 | 
			
		||||
 | 
			
		||||
class MTSCode(object):
 | 
			
		||||
    """Generic MTS code"""
 | 
			
		||||
| 
						 | 
				
			
			@ -475,7 +472,11 @@ class MCU_NRF51Code(object):
 | 
			
		|||
        # Merge user code with softdevice
 | 
			
		||||
        from intelhex import IntelHex
 | 
			
		||||
        binh = IntelHex()
 | 
			
		||||
        binh.loadbin(binf, offset=softdevice_and_offset_entry['offset'])
 | 
			
		||||
        _, ext = os.path.splitext(binf)
 | 
			
		||||
        if ext == ".hex":
 | 
			
		||||
            binh.loadhex(binf)
 | 
			
		||||
        elif ext == ".bin":
 | 
			
		||||
            binh.loadbin(binf, softdevice_and_offset_entry['offset'])
 | 
			
		||||
 | 
			
		||||
        if t_self.target.MERGE_SOFT_DEVICE is True:
 | 
			
		||||
            t_self.debug("Merge SoftDevice file %s"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1003,7 +1003,7 @@ class mbedToolchain:
 | 
			
		|||
 | 
			
		||||
        filename = name+'.'+ext
 | 
			
		||||
        elf = join(tmp_path, name + '.elf')
 | 
			
		||||
        bin = join(tmp_path, filename)
 | 
			
		||||
        bin = None if ext is 'elf' else join(tmp_path, filename)
 | 
			
		||||
        map = join(tmp_path, name + '.map')
 | 
			
		||||
 | 
			
		||||
        r.objects = sorted(set(r.objects))
 | 
			
		||||
| 
						 | 
				
			
			@ -1012,7 +1012,7 @@ class mbedToolchain:
 | 
			
		|||
            self.progress("link", name)
 | 
			
		||||
            self.link(elf, r.objects, r.libraries, r.lib_dirs, r.linker_script)
 | 
			
		||||
 | 
			
		||||
        if self.need_update(bin, [elf]):
 | 
			
		||||
        if bin and self.need_update(bin, [elf]):
 | 
			
		||||
            needed_update = True
 | 
			
		||||
            self.progress("elf2bin", name)
 | 
			
		||||
            self.binary(r, elf, bin)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -216,8 +216,10 @@ class ARM(mbedToolchain):
 | 
			
		|||
 | 
			
		||||
    @hook_tool
 | 
			
		||||
    def binary(self, resources, elf, bin):
 | 
			
		||||
        _, fmt = splitext(bin)
 | 
			
		||||
        bin_arg = {".bin": "--bin", ".hex": "--i32"}[fmt]
 | 
			
		||||
        # Build binary command
 | 
			
		||||
        cmd = [self.elf2bin, '--bin', '-o', bin, elf]
 | 
			
		||||
        cmd = [self.elf2bin, bin_arg, '-o', bin, elf]
 | 
			
		||||
 | 
			
		||||
        # Call cmdline hook
 | 
			
		||||
        cmd = self.hook.get_cmdline_binary(cmd)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -261,7 +261,9 @@ class GCC(mbedToolchain):
 | 
			
		|||
    @hook_tool
 | 
			
		||||
    def binary(self, resources, elf, bin):
 | 
			
		||||
        # Build binary command
 | 
			
		||||
        cmd = [self.elf2bin, "-O", "binary", elf, bin]
 | 
			
		||||
        _, fmt = splitext(bin)
 | 
			
		||||
        bin_arg = {'.bin': 'binary', '.hex': 'ihex'}[fmt]
 | 
			
		||||
        cmd = [self.elf2bin, "-O", bin_arg, elf, bin]
 | 
			
		||||
 | 
			
		||||
        # Call cmdline hook
 | 
			
		||||
        cmd = self.hook.get_cmdline_binary(cmd)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -224,8 +224,10 @@ class IAR(mbedToolchain):
 | 
			
		|||
 | 
			
		||||
    @hook_tool
 | 
			
		||||
    def binary(self, resources, elf, bin):
 | 
			
		||||
        _, fmt = splitext(bin)
 | 
			
		||||
        bin_arg = {".bin": "--bin", ".hex": "--ihex"}[fmt]
 | 
			
		||||
        # Build binary command
 | 
			
		||||
        cmd = [self.elf2bin, "--bin", elf, bin]
 | 
			
		||||
        cmd = [self.elf2bin, bin_arg, elf, bin]
 | 
			
		||||
 | 
			
		||||
        # Call cmdline hook
 | 
			
		||||
        cmd = self.hook.get_cmdline_binary(cmd)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue