Dúvida Sobre Conversão

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

Dúvida Sobre Conversão

Mensagempor Guri » 09 Set 2018 12:59

Olá, amigos,

Estou com um problema, preciso converter ou melhor dizendo, gerar um arquivo de texto da seguinte forma, vou tentar se o mais claro possível:

Esse bytes estão organizados em 8bits cada no arquivo de texto:
LSB MSB LSB MSB
0xF1, 0xF2, 0xF3, 0xF4,

Quero converter eles para 32bits no arquivo de texto:
0xF2F1F4F3

Eu tentei fazer isso no WINHEX, bom não consegui ter êxito total, o máximo que consegui fazer foi "inverter" o LSB com o MSB, agora eu queria gerar o TEXTO na ordem acima "0xF2F1F4F3", sendo que só conseguir gerar o texto no WINHEX para grupos de 1byte, ou seja 0xF2, 0XF1, 0XF4, 0XF3 enquanto o desejo final seria gerar o texto 0xF2F1F4F3

Alguém sabe como fazer isso?

O motivo de eu querer gerar esse arquivo dessa forma é porque quero usar uma matriz em memória e ocupar os 32bits de cada posição de memória do STF32F. Porque se eu utilizar apenas um byte por posição de memória, irei perder as outras 3 posições dentro da posição de 32bits...

O motivo de usar o WINHEX é por causa da facilidade de geração do arquivo de texto em C, já com o formato correto, ai é só colar...

Espero ter sido claro...
Obrigado
DEUS SEJA LOUVADO
GURI (VonNilmam)
Guri
Byte
 
Mensagens: 457
Registrado em: 25 Abr 2010 09:05
Localização: Minas Gerais

Re: Dúvida Sobre Conversão

Mensagempor Rodrigo_P_A » 09 Set 2018 13:09

Você está enganado, se vc quer converter para salvar em const na FLASH do STM32 basta fazer: const char seusdados[]={0xF1,0xF2....}

não vai perder 3 bytes, o compilador vai gerar o código para gravar na flash e ocupar toda memória.
---
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2236
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil

Re: Dúvida Sobre Conversão

Mensagempor Guri » 09 Set 2018 13:45

Obrigado pela resposta, deixa me ver se eu entendi, talvez eu não tenha explicado direito, até eu estou confuso :lol:

Vamos supor que eu esteja no endereço 0 da memória de programa, ok.

Eu tenho 4 bytes de "8bits", Ex.: 0xF1, 0xF2, 0xF3, 0xF4

O barramento do STM é de 32 bits, ok.

Se eu fizer: const char dado[] = { 0xF1, 0xF2, 0xF3, 0xF4};

O compilador vai montar a seguinte sequencia na memória de programa:
Endereço 0 = 0xF1
Endereço 1 = 0xF2
Endereço 2 = 0xF3
Endereço 3 = 0xF4

Ou seja eu usei 4 endereços de memória para armazenar essas variáveis, até ai esta tudo certinho. Mas o Barramento do ARM é de 32bits, portanto eu quero armazenar essas 4 variaveis no byte de 32bits, e para fazer isso tenho que enviar o seguinte código ao compilador:

const unsigned long dado[] = {0xF1F2F3F4};
Agora sim estou ocupando os 32bits da posição 0 da memória flash.

No WINHEX, ele gera um aquivo de texto com os dados, só que em 8bits, tipo: 0xF1, 0xF2, 0xF3, 0xF4. E eu preciso que seja gerado o arquivo assim: 0xF1F2F3F4.

Quando eu disse "perder dados" não foi necessariamente isso que me referi ao pé da letra e sim quero ocupar os 32bits da posição de memória.
Obrigado
DEUS SEJA LOUVADO
GURI (VonNilmam)
Guri
Byte
 
Mensagens: 457
Registrado em: 25 Abr 2010 09:05
Localização: Minas Gerais

Re: Dúvida Sobre Conversão

Mensagempor Red Neck Guy » 09 Set 2018 13:57

A memoria do ARM eh acessar em bytes.
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Re: Dúvida Sobre Conversão

Mensagempor Guri » 09 Set 2018 14:04

O meu problema não esta na programação do STM...

O problema esta em como fazer um texto: 0xF1, 0XF2, 0XF3, 0XF4
Ficar assim : 0xF1F2F3F4

:roll:
DEUS SEJA LOUVADO
GURI (VonNilmam)
Guri
Byte
 
Mensagens: 457
Registrado em: 25 Abr 2010 09:05
Localização: Minas Gerais

Re: Dúvida Sobre Conversão

Mensagempor Guri » 09 Set 2018 14:10

Eu peço perdão por não ter tido clareza: Vejam aqui com maior clareza o que eu desejo.

Eu tenho esse texto que foi gerado no WINHEX:

0xB5, 0x7E, 0x6A, 0x6A, 0x6B, 0x77, 0xDE, 0x94, 0xFC, 0x80, 0xD3, 0x50, 0xB4, 0x74, 0x12, 0x99,

Preciso de um programa ("ou se o winhex faz isso, como?" ) que faça a conversão desse texto para:

0xB57E6A6A, 0x6B77DE94, 0xFC80D350, 0xB4741299,
DEUS SEJA LOUVADO
GURI (VonNilmam)
Guri
Byte
 
Mensagens: 457
Registrado em: 25 Abr 2010 09:05
Localização: Minas Gerais

Re: Dúvida Sobre Conversão

Mensagempor vtrx » 09 Set 2018 15:19

Posta o arquivo que o WInhex gerou.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: Dúvida Sobre Conversão

Mensagempor KrafT » 09 Set 2018 15:24

Bom, eu faria de uma das três formas:

1- Se fosse para uma única vez e o arquivo fosse pequeno: Editaria no Notepad e daria um Replace de ", 0x" por nada, cuidando para manter ", 0x" os que devem permanecer;

2- Eu usaria o Dev C++ ou Visual Studio + C# para fazer isso por manipulação de strings, ou LINQ;

3- Se estivesse num momento masoquista, eu faria a própria aplicação mandar o texto para uma serial e capturaria num terminal já formatado, e colaria de volta no código :evil:
"..."Come to the edge," he said. And so they came. And he pushed them. And they flew."― Guillaume Apollinaire
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Re: Dúvida Sobre Conversão

Mensagempor Guri » 09 Set 2018 17:13

kkk.... :lol: Essa foi boa kraft,

Essa foi de lascar, né.

Eu achei uma solução :idea:

Como o arquivo é pequeno, umas 100 linhas, vou fazer na mão :x
DEUS SEJA LOUVADO
GURI (VonNilmam)
Guri
Byte
 
Mensagens: 457
Registrado em: 25 Abr 2010 09:05
Localização: Minas Gerais

Re: Dúvida Sobre Conversão

Mensagempor KrafT » 09 Set 2018 17:28

Guri escreveu:Como o arquivo é pequeno, umas 100 linhas, vou fazer na mão :x


O que é a minha sugestão 1.

A propósito, quanto queres pelo kit Z80? Só por curiosidade, pq já torrei a verba disponível.
"..."Come to the edge," he said. And so they came. And he pushed them. And they flew."― Guillaume Apollinaire
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Re: Dúvida Sobre Conversão

Mensagempor Rodrigo_P_A » 10 Set 2018 18:53

Guri escreveu:Eu peço perdão por não ter tido clareza: Vejam aqui com maior clareza o que eu desejo.

Eu tenho esse texto que foi gerado no WINHEX:

0xB5, 0x7E, 0x6A, 0x6A, 0x6B, 0x77, 0xDE, 0x94, 0xFC, 0x80, 0xD3, 0x50, 0xB4, 0x74, 0x12, 0x99,

Preciso de um programa ("ou se o winhex faz isso, como?" ) que faça a conversão desse texto para:

0xB57E6A6A, 0x6B77DE94, 0xFC80D350, 0xB4741299,


Veja o exemplo abaixo, você está confundindo plataforma 32 bits com endereçamento da memória.

Veja por ser litle endian, os dados são armazenados assim:
ex-arm-mem.png
Você não está autorizado a ver ou baixar esse anexo.
---
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2236
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil

Re: Dúvida Sobre Conversão

Mensagempor tcpipchip » 11 Set 2018 08:00

Aquino escreveu:A memoria do ARM eh acessar em bytes.


Aquino já esta falando com sotaque americano!
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Re: Dúvida Sobre Conversão

Mensagempor tronico » 11 Set 2018 08:31

Você falou em arquivo de texto, não seria um arquivo binário ?

Um ótimo software para manipular os bytes de um arquivo é o HxD https://mh-nexus.de/en/hxd/.

Fiquei um poco confuso com sua dúvida! ... Um arquivo ou a memória do micro armazenam informações de 8 bits. O que muda é como esses bytes serão representados no seu programa.
Você pode acessar ou ler essa informação de outra forma não necessariamente byte a byte, com uso de ponteiros por exemplo, em forma de estrutura, ...!
tronico
Byte
 
Mensagens: 112
Registrado em: 08 Set 2011 07:48
Localização: Blumenau SC

Re: Dúvida Sobre Conversão

Mensagempor Guri » 11 Set 2018 22:32

Gostei desse editor, ele é bem parecido com o winhex...

Obrigado pelas dicas :D
DEUS SEJA LOUVADO
GURI (VonNilmam)
Guri
Byte
 
Mensagens: 457
Registrado em: 25 Abr 2010 09:05
Localização: Minas Gerais


Voltar para ARM

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x