楼主: xiaocaihong

大咖问答第十一期:韦东山解答单片机和Linux等嵌入式问题

  [复制链接]

该用户从未签到

发表于 2020-7-13 11:14:39 | 显示全部楼层
分享到:
想问下,学习cotrex-A内核的片子,上linux,该打哪些基础,我也学习过2440片子,但是去看视频的时候好多都不懂,学着感觉挺难的,能给下学习的建议么,更好的入门
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2020-7-13 13:09:57 来自手机 | 显示全部楼层
会单片机编程,如何入门嵌入式linux学习比较好?
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2020-7-13 15:09:11 | 显示全部楼层
zcp6 发表于 2020-7-10 19:59
韦老师 您好   用嵌入式Linux做什么项目可以新颖一点  在比赛当中可以脱颖而出  目前还没有好的想法

现在比较新奇的、秒杀单片机的,也就是嵌入式Linux+AI,你可以从这方面考虑一下。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2020-7-13 15:09:11 | 显示全部楼层
yinwuqing 发表于 2020-7-10 21:26
韦老师,如果在编译一个应用程序需要第三方插件支持,而这个插件下载又下载不了,服务器在国外。将软件源更换成国内的链接地址,但还是找不到资源包,而且没有安装这个插件就编译不了这个应用程序,这种情况下怎么解决呢?另外如果一个双核MCU,能够实现一个核运行Linux系统,另一个核运行RTOS,两个核实时相互通讯呢? ...

1.翻墙
2.现在我们正在做的STM32MP157开发板,有连个cortex A7,运行Linux;有一个cortem M4,运行RTOS。
Linux和RTOS是可以通信的,有厂家已经实现的库直接给你用。
如果不是STM32MP157,那可以自己实现这些通信功能,
这要看你的电路是怎么接的了:
双口RAM、I2C/spi等等都可以实现通信。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2020-7-13 15:09:11 | 显示全部楼层
yinwuqing 发表于 2020-7-12 14:24
韦老师,您好!Linux是否是实时系统?如何提高Linux系统和应用的实时性?有时候会遇到嵌入式系统中的优先级翻转,一般什么情况下优先级会出现翻转,以及如何避免优先级翻转呢?

Linux不是实时操作系统,
有一些实时性的改造:但是我没用过。
要避免优先级反转,主要就是避免中断处理过程太长:
Linux提供了很多种方法:中断下半部、工作队列、tasklet、中断的线程化处理。
这些技术在我新录制的视频里有介绍。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2020-7-13 15:09:11 | 显示全部楼层
TLLED 发表于 2020-7-13 08:13
你好,韦老师,想请教下linux系统和单片机相比,在实时性方面,那个更好

Linux不是实时操作系统,单片机的实时性更好
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2020-7-13 15:09:11 | 显示全部楼层
俏如来 发表于 2020-7-13 10:49
接触liunx有很长一段时间了,一直没有入门,因为工作中用不到,现在想入门提高一下自己,liunx现在主要做应用的比较多吧,做驱动方面需求现在市场需求现在还多么.

很多公司甚至没有驱动的职位,比如科大讯飞的某个部门是做语音机器人的,直接用filrefly的板子,底层全不管的。
所以从这个角度看,驱动的需求并不多。
但是很多中小公司都是上下一条龙,APP到驱动都是几个人搞定,需要你什么都懂。
入门的话,建议掌握一些驱动基础后,就做APP、做项目吧。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2020-7-13 15:10:01 | 显示全部楼层
tonecrow 发表于 2020-7-13 13:09
会单片机编程,如何入门嵌入式linux学习比较好?

嵌入式Linux系统有这些组成:u-boot, linux, 驱动, APP。
很多初学者喜欢按照这个流程学习:先学习裸机熟悉开发板,再学习u-boot,接下来学习驱动,最后学习APP。
学习裸机需要2、3个月,学习u-boot也需要2、3个月,结果工作中u-boot基本不用改,并且u-boot比驱动开发还难!
按这套流程下来,学了后面忘了前面,最惨的是:不能快速上手工作,消耗学习热情!
所以我建议:
1.你都会裸机了,对硬件编程不是小白了,不需要再学习裸机
2.不学uboot,会烧写UBOOT、会执行UBOOT命令就可以了,如果你的工作就是该UBOOT那再去深入学习
3.学习Linux APP开发基础知识,比如文件读写、LCD编程、触摸屏编程、网络通信、进程通信、多线程编程
4. 学习一些Linux驱动基础,不需要太深入,会点灯、知道设备树,会用中断就可以。
   为什么还要学习驱动呢?让你有个概念,以后你跟其他工程师交流时不至于懵逼。
   并且中断程序引入的进程、线程、休眠唤醒、POLL、异步通知等概念,对于APP开发也很有帮助。
5. 直接上项目:把驱动基础、APP基础融合起来做一个项目
6.入门之后再按需学习,工作中涉及驱动就去学习驱动,工作中涉及什么再去深入研究。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2020-7-13 16:02:45 | 显示全部楼层
1597685605 发表于 2020-7-13 11:14
想问下,学习cotrex-A内核的片子,上linux,该打哪些基础,我也学习过2440片子,但是去看视频的时候好多都不懂,学着感觉挺难的,能给下学习的建议么,更好的入门

其实Linux的学习跟cortex A、ARM9什么没关系,
你学习时操作的是CPU之外的寄存区,跟CPU的架构没什么关系的。
你的问题应该是:怎么入门。
这问题都是类似的,我已经回答过,在贴一下:

嵌入式Linux系统有这些组成:u-boot, linux, 驱动, APP。
很多初学者喜欢按照这个流程学习:先学习裸机熟悉开发板,再学习u-boot,接下来学习驱动,最后学习APP。
学习裸机需要2、3个月,学习u-boot也需要2、3个月,结果工作中u-boot基本不用改,并且u-boot比驱动开发还难!
按这套流程下来,学了后面忘了前面,最惨的是:不能快速上手工作,消耗学习热情!
所以我建议:
1.不需要再学习裸机,即使你对硬件操作不熟,只要懂LED、按键的原理就可以。
  在Linux系统中,在入门阶段可以不涉及寄存器编程,裸机什么的也就不用学习了。
2.不学uboot,会烧写UBOOT、会执行UBOOT命令就可以了,如果你的工作就是该UBOOT那再去深入学习
3.学习Linux APP开发基础知识,比如文件读写、LCD编程、触摸屏编程、网络通信、进程通信、多线程编程
4. 学习一些Linux驱动基础,不需要太深入,会点灯、知道设备树,会用中断就可以。
   为什么还要学习驱动呢?让你有个概念,以后你跟其他工程师交流时不至于懵逼。
   并且中断程序引入的进程、线程、休眠唤醒、POLL、异步通知等概念,对于APP开发也很有帮助。
5. 直接上项目:把驱动基础、APP基础融合起来做一个项目
6.入门之后再按需学习,工作中涉及驱动就去学习驱动,工作中涉及什么再去深入研究。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2019-5-29 18:00
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2020-7-13 17:35:12 | 显示全部楼层
    weidongshan 发表于 2020-7-9 14:59
    有些人根据兴趣选择工作,
    有些人根据钱途选择工作,
    有些人不得已选择嵌入式Linux,

    乐于助人的韦老师,赞!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-19 13:32 , Processed in 0.187942 second(s), 30 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.