msoliver
(usa Debian)
Enviado em 14/02/2019 - 18:24h
Katsu01 escreveu:
Olá msolviver,
Mil desculpas... acabei escrevendo errado e não vi.
Eu preciso gerar um arquivo mostrando o consumo de Flash e RAM do projeto de um microcontrolador.
Digamos que o microcontrolador tem Flash de tamanho de 128Kbytes e RAM de 68Kbytes
Usando a saída do comando abaixo:
text data bss dec hex filename
19056 80 2100 21236 52f4 /work/HW-BOT-00004/Debug/HW-BOT-00004.elf
Eu preciso realizar uns cálculos e gerar um arquivo de saída assim.
# Arquivo Consumo.txt
projeto: /work/HW-BOT-00004/Debug/HW-BOT-00004.elf
% de Flash consumida: 14,53%
% de RAM Consumda: 3,13 %
# Calculo para medir a porcentagem de Flash Consumida:
# (128 * 1024) ------------- 100%
# 19056 ------------- X
# X = (19056 * 100) / (128 * 1024) = 14,53%
# Calculo para medir a porcentagem de RAM Consumida:
# 68 * 1024 ------------- 100%
# (80 + 2100) ----------- Y
# Y = ( 80 + 2100 ) * 100 / ( 68 * 1024 ) = 3,13 %
Vamos lá..
Veja se é isso...
TFlash=128
TRam=68
# Calculo para medir a porcentagem de Flash Consumida:
# (128 * 1024) ------------- 100%
# 19056 ------------- X
# X = (19056 * 100) / (128 * 1024) = 14,53%
awk '/^[0-9]/ {printf "%s%%\n" ,($1*100)/('${TFlash}'*1024)}' Saida_do_comando.txt
# Calculo para medir a porcentagem de RAM Consumida:
# 68 * 1024 ------------- 100%
# (80 + 2100) ----------- Y
# Y = ( 80 + 2100 ) * 100 / ( 68 * 1024 ) = 3,13 %
awk '/^[0-9]/ {printf "%.2f%%\n" ,(($2+$3)*100)/('${TRam}'*1024)}' Saida_do_comando.txt
Juntando tudo e usando o pipe apos o comando....
COMANDO|awk '/^[0-9]/ {printf "X = %.2f%%\n" ,($1*100)/('${TFlash}'*1024);printf "Y = %.2f%%\n" ,(($2+$3)*100)/('${TRam}'*1024)}'
X = 14.5386%
Y = 3.13%
É isso...
Se a resposta foi satisfatória/esclarecedora, não esqueça de marcar o Tópico como RESOLVIDO, e ESCOLHER a MELHOR RESPOSTA . . . rsrsrs
Att.:
Marcelo OLiver