Criar suas próprias bibliotecas é bastante simples. Sua documentação de especificação de registro é muito boa, a maioria, senão todos os periféricos, são fáceis de configurar. Acho muito mais doloroso usar suas bibliotecas. mas talvez seja apenas eu. Isso é verdade para st, nxp, ti, atmel, para citar alguns (não tanto para intel e microchip).
Por que eles mudam de biblioteca, pode haver várias razões, um novo chefe assumiu, uma divisão foi fechada e outro assumiu. O marketing queria uma nova imagem para o produto. Como a ElectronS mencionou, poderia ser uma tentativa de se afastar mais do hardware para atrair usuários não dispostos ou capazes de fazer bare metal. Eu iria além e diria que eles provavelmente estão tentando competir com o fenômeno Arduino. O que mbed e todos os demais sempre tentaram fazer e falharam (mesmo antes do Arduino).
De qualquer forma, quanto mais longe o hardware fica, mais inchado e mais lento, portanto, mais você precisa gastar por unidade para rom, ram e mhz. Só para você gastar a mesma quantidade de tempo programando? Apenas fazendo diferente?
Você diz que vem do mundo da PIC, agora eles fizeram um bom trabalho com as ferramentas; seus documentos de chip eram terríveis, alguns dos piores. eles compensaram com bibliotecas e caixas de areia.
No final do dia, tente as várias opções, experimente os produtos concorrentes para ver como suas ferramentas se comparam. Muito disso você pode fazer de graça, apenas para ver se faz sentido e você pode compilar coisas. Talvez até use um simulador de conjunto de instruções. Encontre o que combina com você.
Observe que a opção sem bibliotecas fixas está SEMPRE disponível para você. Você não está limitado a qual cadeia de ferramentas você pode usar, qual sistema operacional host, qual ide, editor, etc. Eles podem ficar com você na programação das partes, se as opções forem extremamente limitadas nesse sentido, passar para outro chip ou fornecedor, se puder.
Para vender um produto com chip como esse, eles precisam fornecer um ambiente de desenvolvimento, seja ele todo deles ou coisas grátis que colaram. E eles tendem a montar uma biblioteca de algum tipo. Ele só precisa parecer bom o suficiente e o piscar do exemplo liderado funciona apenas o suficiente para conseguir que seu gerenciamento ou sua equipe de hardware projete em seus produtos. chega ou não chega. Se quase funcionar, mas não completamente, é uma grande vitória para o fornecedor de chips, pois agora você pagará pelo suporte técnico desse último pouquinho. Portanto, é do interesse deles estar quase lá, mas não completamente.
Os fornecedores de chips precisam apenas ter uma boa aparência para obter a vitória no design. Eles precisam continuar melhorando (mudando) o produto para atrair novos e antigos clientes. Portanto, eles terão que fazer overs, quão distantes e quantas bibliotecas anteriores os continuam a suportar, variam. Portanto, praticamente qualquer biblioteca com a qual você se acostuma desaparecerá eventualmente. Portanto, aprenda a se adaptar (ou não use as coisas deles e escolha o seu, que você pode apoiar indefinidamente). Concedido, idealmente, você só precisa desenvolver o aplicativo uma vez por produto, aperfeiçoar seu firmware (boa sorte se estiver usando bibliotecas de terceiros) e não precisará voltar atrás e encontrar um computador que carregará sua cadeia de ferramentas se você puder encontrar um cópia e lembre-se de como usar essa biblioteca antiga. Lembre-se não apenas de salvar seu código-fonte, mas de todas as ferramentas e documentos deles.
Suas bibliotecas são suportadas apenas em geralmente uma cadeia de ferramentas, em uma talvez duas IDEs e, às vezes, apenas no Windows, e em determinadas versões. Novamente, você não tem nenhuma dessas limitações, definitivamente não para o ARM, se você faz o que quiser. Você sempre pode ler qualquer uma / todas as suas bibliotecas para ver como elas fazem as coisas. Mas isso geralmente é muito assustador, eles não usam os desenvolvedores da equipe A para bibliotecas. Extraí algumas linhas de código para perguntar aos candidatos à entrevista o que há de errado com esse código.
para economizar tempo e esforço, tanto do lado do silício quanto do software, eles costumam reciclar o mesmo ip; portanto, depois de ver como o periférico funciona em um de seus chips, ele geralmente funciona da mesma maneira em muitos outros chips. Sim, os sistemas de clock podem ser complicados com ou sem suas bibliotecas. Grande chance de colocar o chip em tijolos, é aí que a maioria dos meus tijolos em placas / cartões aconteceu. Ajuda a entender como seus chips funcionam, por exemplo, os AVRs, se não todos, podem ser reprogramados enquanto o chip está sendo redefinido; portanto, qualquer código incorreto que atrapalha os pinos necessários para reprogramação ou interrompe a lógica necessária para reprogramação não funciona. importa, você pode reprogramar esses chips. Alguns desses fornecedores (st é um) possuem um gerenciador de inicialização interno que você pode selecionar usando uma cinta (BOOT0, por exemplo, no mundo st),
Um tamanho serve para todos, não para ninguém. Particularmente verdadeiro para software. Portanto, qualquer tentativa de abstrair o hardware apenas o torna lento e inchado. É melhor pegar um chip maior e executar o Linux nele, se é isso que você realmente procura. Muito disso é resultado dos desenvolvedores, que não querem sujar as mãos, então basicamente pedimos isso e eles estão tentando fornecê-lo.
Novamente, não se prenda a st ou a qualquer fornecedor (a menos que seja tarde demais e o gerenciamento e / ou a equipe de hardware o tenha comprometido, observe que os produtos stm32 são agradáveis e fáceis de usar). Compre ao redor. A TI está colocando muitos ovos na cesta do córtex-m4. Você pode executar o mbed em vários desses produtos de braço, bem como nas soluções suportadas pelo fornecedor.
Uma coisa em que você sempre pode confiar é que elas mudam as bibliotecas de tempos em tempos e, eventualmente, param de suportar o que você se acostumou.