学了c语言,再学什么可以给硬件编出程序?

Python015

学了c语言,再学什么可以给硬件编出程序?,第1张

你需要理清一个根本概念,语言本身是为了人与机器交互而产生的,所有语言最终生成的都是让硬件工作的“机器码”。从这个角度来说,你的每一条C语句本身就已经是在给“硬件编程序”了。

硬件并不关心,也不知道你的编程语言到底是什么。之所以在单片机、DSP等硬件设计领域C语言的使用率最高,一方面是因为C语言是它那个年代所出现的最优秀的面向结构语言,因此被习惯性地采用,各大厂商开发出了众多的面向具体芯片的C编译器(把C语言转换成相应芯片的机器码),一直延续到了今天;二是因为芯片面向的是底层应用,具体化程度高,抽象性低,采用面向对象语言的总体意义不大,所以目前还没有被面向对象语言代替的趋势(但是并非没有这方面的发展,比如谷歌的Go语言)。不过我相信随着IoT的迅速发展,嵌入式系统的语言和相应的编译器会很快发生巨大的变化。

如果延伸开来的话,除了具有处理器的这一类硬件以外(如51单片机、Arm,DSP等),还有一类硬件没有直接执行机器码的能力,如CPLD、FPGA,这类硬件的逻辑要由开发者设计,这种情形下,C语言就难以胜任了,因为硬件电路的逻辑与“冯诺伊曼”式计算机的根本原理是不同的。为了能够表达复杂的数字逻辑,产生了像Verilog、VHDL这样的硬件描述语言。所以如果你所指的“给硬件编程”是指这一类硬件的话,那么上述的两种语言之一,是必然要学习一下的。

希望能对你有所帮助。

DSP=demand-side platform、 SSP=sell-side platform,前者(DSP)是需求方平台就是advertisers竞价获得广告,也就是google adwords的模式;后者(SSP)是publishers想要卖出自己空余广告位的地方,也就是google adsense的模式。

面向底层,或高效率 用C:如单片机, 操作系统, 数据库实现

面向上层应用面向对象编程 C++ 高效率 : VC/ QT / GTK编程, 现在WPSlinux版是QT实现的

面向对象编程JAVA, Android, 网页脚本, 也能编写PC机应用比如freemind, 也有嵌入式方面的应用.

再就是网络动态语言, jsp/php/asp , jsp一般用于大型网站, php是开源较多,主要一般网站规模不大的在用, asp 好像不温不火,

比较流行的:go python 还要懂shell脚本编程,

面向硬件的有: VHDL/verilog

matlab:算法仿真

无论选哪种语言,商业开发基本上都会涉及到数据库, db2、oracle mysql好像比较出名

小型数据库sqlite,Android 就是用的这个

总之, 各有各的用处, 看你对哪方面感兴趣, 要学的有很多.

我是学嵌入式的,看一下我收集的嵌入式方面需要掌握的知识与技能:

=================================================================

Altium Designer 原理图和PCB制作

STM32处理器

需求分析、设计方案

嵌入式软硬件系统的设计、测试;

技术文档;

生产工艺技术支持。

-------------------------------------------------------------------

Linux平台下进行软件开发

音视频编解码SDK的进行封装

音视频流存储、传输模块,设计、实现、优化及测试

编写相关开发文档、技术支持文档、使用说明

=====

C/C++ 良好的编程习惯与文档规范;

Linux 下进程间通信及内存管理机制

熟悉H.264,G.7xx,AMR,AAC等音视频编码

熟悉MP4,avi等文件格式

熟悉rtsp/rtp、rtmp、http

海思或者amberalla平台

通和协调能力

----------------------------------------------------------------------------

熟悉1种以上数据库

--------------------------------------------------------------

机器人开发经历或参加机器人相关研究

熟悉Android framework,以及Linux驱动开发,调试,有QT程经验

熟练阅读电路原理图,以及PCB layout;

有效地对新人或普通开发工程师进行辅导

---------------------------------------------------------------------------

悉嵌入式环境下的 C/C++ 语言程序设计和汇编语言程序设计

精通个域网通信协议,如无线网络(Wi-Fi、BlueTooth、Zigbee等)等协议,具有智能家居产品相关经验

RM环境下的系统开发环境与工具,包括平台移植、驱动开发及调试,等等;

数字电路模拟电路基础,熟悉uCOS,Linux,RThread,FreeRTOS等嵌入式操作系统内核程序设计

深入掌握一种或几种嵌入式处理器系统(熟悉Arm、X86、PPC、MIPS)

---------------------------------------------------------------------------

WIFI模块

----------------------------------------

懂日语、32岁以下

-------------------------------------------------------------------------------------

bootloader、内核板级移植、集成。

海思或者amberalla平台开发经验

外设接口和通信协议,包括USB,CAN,LIN,TCP/IP等多种汽车和工业总线技术

无线通讯模块、蓝牙、GPRS、有线及无线通讯

物联网电子消费品产品开发经验

电气电子产品开发和项目管理经验

--------------------------------------------------------------------------------------

精通如下串行总线协议:USB/I2C/SPI/I2S/UART

悉Boot Loader,

具有Linux BSP经验者

具备良好沟通、协作、学习能力,能够主动在项目中承担起责任

写和移植内核设备驱动

裁剪和优化的Linux内核

----------------------------------------------------------------------------------

团队管理经验

硬件基本原理,能看懂原理图和PCB

精通linux内核架构,熟悉多线程编程

精通多种常用传输总线协议,如IIC、SPI、CAN、IIS;

对无线网络数据传输有较深了解;使用过无线传输模块,GPRS、3G等

WIFI驱动、WIFI应用、蓝牙驱动、蓝牙应用有较深的了解

对USB驱动有较深了解,做过USB设备驱动、对SD卡和TF卡

车载电子设备

熟悉视频、音频处理,熟悉视频、音频编解码处理;

熟悉安卓架构,能编写安卓中间件

ARM或DSP嵌入式软件开发经验

-----------------------------------------------------------------------------------------------

入式Linux系统体系结构设计,系统内核维护;

根据需求制定系统整体软件方案,划分软件模块;

优化uboot、Linux内核相关模块

深入了解ARM(Cortex-A8以上)体系结构

常用驱动程序及相关协议,如:Framebuffer、以太网、USB、CAN总线、I2C、SPI等。可以对驱动程序进行深度的优化;

对视频/图像有较深刻认识,了解视频/图像编解码相关知识;

使用OPenGL完成图像渲染;

负责研究和开发3D引擎到Opengl的标准化接口;

深入理解QT底层实现机制。熟悉QT在不同平台之间的移植

Ti/Freescale ARM开发经验

认真对待每一项工作,同事之间团结互助;

良好的英文交流能力

--------------------------------------------------------------------------------------------

熟悉wifi,nrf2401,camera,audio 等外围模组及相关协议

熟悉ucos—2

智能家居方面的实际开发经验

----------------------------------------------------------------------------------

单片机、ARM、Cotrex-M3/M4等处理器

掌握网络、UART、LCD、SPI、I2C、RS485

搭建嵌入式Linux软硬件系统

熟悉Linux内核机制

熟练完成嵌入式下linux的驱动开发与应用开发。

熟悉TCP/IP协议栈,Socket通信编程

熟悉HTTP、SNMP、DHCP等应用层协议。

CAN总线、WIFI、Zigbee等相关产品开发经验

良好的语言表达沟通能力和团队合作精神

------------------------------------------------------------------------------------

broad expertise

-----------------------------------------------------------------------------------------

具有linux,freeRTOS等主流嵌入式系统开发经验

熟悉TCP/IP、WIFI、蓝牙BLE、I2C等协议

有音频、Andorid开发、Java虚拟机、云端数据同步、智能家居产品等开发经验

嵌入软件, 驱动,协议栈,协议开发经验

精通TCP/IP协议

用网络协议,了解防火墙, 路由交换技术

无线协议802.11,802.1X

熟悉Wi-Fi、ZigBee、蓝牙,模拟信号、UART、RS232、RS485、各种现场总线、HART-IP、TCP/IP、OPC、OPC UA、BACNet等协议

立志于一起打造互联网+工业。

---------------------------------------------------------------------------------------------

熟悉8583、EMV、PBOC等相关行业知识

3年以上 嵌入式 Linux 驱动开发经验

读懂硬件图纸

熟练掌握 i2c、i2s、spi、gpio、uart、usb、lcd/framebuffer 等常用 Linux 驱动

Linux 中断程序开发;

电机控制驱动、Linux系统管理、系统版本升级 等开发经验

---------------------------------------------------------------------------------------------

雷达、超声项目相关的研发

扎实全面的硬件电路设计、调试能力,熟悉模拟、数字及混合电路;

拥有DSP(TI TMS系列为佳),ARM, FPGA/CPLD 设计经验;

解决并优化整体系统的信噪比、电磁屏蔽、能耗管理和热耗散管理

熟悉PCB 布线,制版和调试

有担任规模量产项目技术研发经历

掌握交叉编译环境、熟练典型Linux系统调用和应用程序开发

熟练掌握至少一种版本管理工具(如:SVN、GIT等);

对Linux系统内核及驱动程序有深入理解

对Linux内核进行深度定制和修改

------------------------------------------------------------------------------------------------

熟悉uC/OS下Camera,LCD、WIFI、RIL、IIC、SPI、UART、2G、各类型Sensor等各种外设驱动驱动模型

做过传统单片机 pos 机 或类似stm32 pos机项目经验

熟悉PBOC协议

能够使用示波器和逻辑分析仪等

--------------------------------------------------------------------

C/C++ 网络及多线程编程

熟悉OpenWrt开发,移植

悉Qualcomm SDK者优先,有一定的算法基础,

----------------------------------------------------------------

用有电子工具软件PROTEL\PADS等

网关产品,协议转换类产品编程经验

精通TCP/IP,ZIGBEE,MQTT协议,了解至少一种工业总线;

能独立承担产品的设计规划,周边接口硬件电路设计,功能软件设计;

---------------------------------------------------------------------

熟悉C/C++/JAVA/J2ME语言编程

入式Linux操作系统,Linux驱动开发

精通Android开发平台及Framework框架原理

熟悉基本无线协议;

责任心和进取心

团队协作

善于沟通和表达

独立设计优化和移植HAL层外设模块,如Camera、WiFi、蓝牙、触摸屏等模块;

将Android系统移植到特定硬件平台上

给上层app及UI开发提供支持

--------------------------------------------------------------------------

移植和底层驱动

熟悉Linux内核架构

Makefile、shell等脚本语言

熟悉RTP,RTCP,RTSP等流媒体协议

熟练使用Ethereal、Wireshark和Tcpdump等网络协议分析工具

DVR、MDVR、DVS等监控产品开发经验

-------------------------------------------------------------------------

产品的规划设计、安卓等平台的底层驱动程序编写调试

主板调试及外设调试,确保项目中驱动部分的质量和进度

独立完成各业务模块的驱动开发工作以及技术难题攻关、技术评估;

模块的需求分析、详细设计、编码实现、和单元自测,参与产品需求分析并制定技术实施方案,根据产品功能需求设计并完成软件实现,了解项目需求和业务流程。

2年以上单片机系统软件开发经验,2年以上的Android系统软件驱动开发经验(有成熟产品移植开发经验),有WINCE平台开发经验更佳;

uboot、kenel Driver开发以及HAL层等开发、调试和集成工作

熟悉ARM系列处理器架构,包括简单的ARM处理器(Cortex-M3/M0)和复杂的多核ARM处理器的应用设计经验;

无线网络数据传输有较深了解;使用过无线传输模块,GPRS、3G等;

对USB驱动有较深了解,做过USB设备驱动、对SD卡和TF卡等实际应用上有独到的心得体会或做过车载电子设备

够独立解决各类底层疑难问题,能够同硬件和软件应用工程师一起合作解决复杂问题;

责任心,主动学习,团队沟通协作,文档输出, 英语读写

---------------------------------------------------------------------------------

精通Wifi协议及应用开发,熟悉博通与MTK系列wifi芯片;

熟悉TCPIP协议,熟悉HTTP、FTP等网络协议应用和开发

熟悉Wifi、射频产品的生产和测试

必须有broadcom、Atheros或MTK的一种wifi方案经验

自我驱动的学习和工作习惯

对未知技术和领域能快速掌握并实践

沟通、协调, 项目管理、团队管理

---------------------------------------------------------------------------------------

Socket编程,多线程编程,进程间通信

熟悉TCP/IP协议;熟悉HTTP,UDP/RTP/RTCP/RTS等流媒体传输与控制协议;

熟悉音视频压缩技术

------------------------------------------------------------

悉实时操作系统如ThreadX,FreeRTOS

熟悉串口,TCPIP协议,WIFI,GPIO,JTAG等底层编程

家电无线模块软件开发

不同硬件平台选型开发

撰写并维护相关技术文档

-----------------------------------------------------------------------

通32 bit ARM单片机系统开发,熟悉Atmel芯片

精通uCOSII系统,有相关开发经验

OS(uCOSII与Linux)移植、驱动编写与应用软件开发

------------------------------------------------------------------------

主流单片机、ARM、FPGA硬件平台

熟悉VHDL/Verilog语言进行FPGA开发;

有效实现板级系统间数据通讯,

了解卫星通讯协议

熟悉使用LabView进行数据采集和系统测试

独立进行PCB开发并联系相关厂家进行生产

熟悉中国电子信息产业链,不仅懂得怎样设计, 还要知道怎样利用现有市场产品, 经济快速有效地实现自己的设计

了解电子产品国际市场, 能够从市场角度去开发产品;

英语能力可以应付国际化工作环境, 能够熟练使用法语德语更好。

在本专业领域内有丰富人脉,能够在全世界范围内为具体问题找到合适的人;