Arm Community
  • Site
  • User
  • Site
  • Search
  • User
  • Groups
    • Arm Research
    • DesignStart
    • Education Hub
    • Graphics and Gaming
    • High Performance Computing
    • Innovation
    • Multimedia
    • Open Source Software and Platforms
    • Physical
    • Processors
    • Security
    • System
    • Software Tools
    • TrustZone for Armv8-M
    • 中文社区
  • Blog
    • Artificial Intelligence
    • Automotive
    • Healthcare
    • HPC
    • Infrastructure
    • Innovation
    • Internet of Things
    • Machine Learning
    • Mobile
    • Smart Homes
    • Wearables
  • Forums
    • All developer forums
    • IP Product forums
    • Tool & Software forums
    • Pelion IoT Platform
  • Activity
  • Support
    • Open a support case
    • Documentation
    • Downloads
    • Training
    • Arm Approved program
    • Arm Design Reviews
  • More
  • Cancel
中文社区
中文社区
中文社区博客 我的ARM学习经历
  • Blogs
  • Forum
  • 视频和文件
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
  • New
中文社区 requires membership for participation - click to join
More blogs in 中文社区
  • ARM中国大学计划博客

  • Arm新闻

  • 中文mbed博客

  • 中文社区博客

  • 恩智浦汽车电子MCU讨论区博客

 

Tags
  • Processor
  • chinese
  • Arm
  • Embedded
  • experience
  • 学习
  • 经验分享
  • 嵌入式
  • 中文
  • study
  • mcu
  • 处理器
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

我的ARM学习经历

张超
张超
April 4, 2014

下面介绍我的学习经历:

1、基础阶段

     话说07年第一份工作从事的是PLC开发,用protel画原理图和PCB,写AVR单片机程序,焊焊板子,还去过华强北买器件,比较杂,但是接触面比较广,为进一步学ARM打下了基础。

    期间不甘心只停留在AVR单片机层次,买了邵贝贝的《uCOS-II嵌入式操作系统》,看了4-5遍,弄懂它的原理,还看了陈明计的《SmallRTOS嵌入式操作系统》,之后自己写了一个AVR的时间片调度器。

    2、接触ARM

     09年4月份换了工作,搞B超,接触三星的S3C2410,看2410的数据手册,开始接触到ARM的32个寄存器、中断管理、MMU、7种工作模式,还真的晕了好长一段时间,模模糊糊,弄不懂,挺痛苦的。工作中也开始实践起来,基于ADS1.2,采用uCOS-II。

      先不管ARM内核的细节、产品平台底层的细节,也先不管USB、LCD、内存控制器等较复杂的部分。先搞单片机有的那些外设,发现单单写2410的驱动程序,如SPI、USART、IO控制,发现跟单片机一样,只要看2410数据手册的SPI、USART、IO口部分就行了。这时,信心有了,感觉自己多少可以把2410玩起来了。

      这时买了一块2410开发板,带有ADS1.2例程,这些例程有启动汇编代码,还有底层的一些C语言初始化代码,看的很费劲,不知道是啥意思。没关系,你总会找到main函数入口吧?其他我不管,先自己在main函数里面编编代码玩玩先,试了URAT、SPI、I2C、RTC,跑起来了。这时再学学中断,按照例程的中断,自己也编写一下自己的中断例子。

     发现经过例程学习ARM,效果比单看书好的多。单看书你会晕,很多不明白,越看越枯燥,越看越没信心,感觉看了很久,心里还不知道ARM是什么。学学例程的话,把ARM当单片机用,很简单,上手很快,你对ARM的恐惧感就慢慢消失了,信心也有了,再结合书本,对照例子,心中一些不明白的ARM内核原理,也逐渐开朗,哦,原来如此,原理很简单嘛。

     再后来,看ARM原理、MMU、中断管理、SDRAM、LCD控制器,自然而然的都明白了。

     3、提高

     基础有了,慢慢的接触到USB、FAT文件系统、U-BOOT、GUI显示,一个一个的去熟悉,发现你已经入了嵌入式的大门,慢慢的积累,每搞定一个功能,也小有成就感了。

     4、后记

       10年五一又换了一份工作,用atmel的9260芯片,搭建软件平台,这时对以往知识的一次综合应用,以前都是现成的平台,自己在上面添加功能,修修改改,这一次,是从无到有的建立ARM+uCOS-II软件平台:

      编译器选型,选了MDK,上网找破解;

      了解9260的启动过程,程序烧写方案;

      选择调试工具,建立调试环境,使用JLINK、或者wiggler+HJTAG;

      uCOS-II移植,下载了官方IAR移植版的,根据MDK做修改,终于跑起来;

      编写9260各种外设驱动;

      应用软件系统结构设计,多任务划分;应用编程,问题解决,这一块花的时间最多了。

      学习zmodem,把官方的zmodem程序看懂,移植到产品上,做了一个不超过4K的9260引导程序,代替atmel的at91bootstrap,可以通过“超级终端+串口”烧录程序,而用SAM-BA烧写,很麻烦;

      深入分析了yaffs文件系统,做了一个日志系统,计划今年将yaffs分析经验写成一个文档;

      今年的计划:预测物联网趋势,网络将会大规模应用,要深入学习tcpip,学精,分析lwip代码

       5、希望能给后来者参考价值。

Anonymous
中文社区博客
  • 中文社区博客: Streamline中基于统计的性能分析功能介绍

    章政
    章政
    原文参考 ARM性能分析器(Streamline) 7.0版开始支持基于SPE(统计性能分析扩展)的性能分析。SPE是Armv8.2-A架构中的一个可选扩展特性,它可以以很低的代价对处理器的流水线进行采样。Streamline可以从Arm Development Studio和Arm Mobile Stuido获取。 为什么需要SPE? Streamline前序版本只能通过硬件计数器和软中断中采样PC信息获取CPU的信息…
    • January 28, 2020
  • 中文社区博客: 让数值算法在Arm edge端跑的更快

    章政
    章政
    CMSIS DSP 库作为高度优化的嵌入式系统数字信号计算库一直以来深受广大开发者所喜爱,随着人工智能(Artificial Intelligence )逐步向Edge端扩展,Edge端的数字计算负载也越来越大,为了缓解计算的压力,各种框架也在Edge端采用CMSIS DSP库进行优化加速。科学计算环境和嵌入式开发环境有很大的区别,比如科学计算往往采用Python,SCIPy,Matlab,而这些环境一般是无法在低功耗嵌入式环境…
    • November 13, 2019
  • 中文社区博客: 使用Arm Mobile Studio加速Mali GPU分析

    章政
    章政
    Streamline性能分析器是一个基于采样的分析器,可以提供有关设备中存在的Arm CPU和Mali GPU的详细性能信息。最新版本的Streamline包含一组预定义模板,可用于方便选择要使用的数据源,并控制它们的显示方式。最新版本的Streamline包含在  Arm Mobile Studio  2019.0和  Arm Development Studio  2019.0中,它包含对Mali
    • May 31, 2019