
嵌入式学习笔记
C__M__H
这个作者很懒,什么都没留下…
展开
-
C语言函数参数数量不同、参数为变参时参数的传递规则
写这篇笔记是因为对C语言函数参数的传递突然有了很多疑惑。ATPCS规定R0~R4用于存储前四个参数,那么如果对前四个参数取址得到的是什么结果呢?CPU的寄存器是自有的,不在内存空间中。如果要实现变参函数,找不到参数的入口地址,那接下来的工作就无法完成。于是写了一些代码,做了一些实验来寻找答案。代码在ARM和MSP430芯片上通过运行。结论 (1) 参数数量固定, 并且参数数量小于等于4个. 参数会从左到右传到R0~R3寄存器中, 同时在内存中会有这些参数的副本, 并且参数按从左到右...原创 2020-09-28 17:07:54 · 1367 阅读 · 1 评论 -
直接修改bin文件改变点亮的LED
直接修改修改bin文件改变点亮的LED不管我们在计算机上做了多么复杂的动作,包括编写C语言代码、汇编代码、makefile文件等,最后都只不过是为了得到一个bin文件。因此,原则上当我们失去所有工具时,只要你足够强大,就能拿着一些官方文档直接制作bin文件,然后点亮一个LED灯。一. 点亮LED1在JZ2440中,LED原理图如下所示:从上面两张图可知,JZ2440的LED为低电平启动,...原创 2019-05-20 16:00:50 · 5403 阅读 · 0 评论 -
S3C2440 UART的使用
文章目录实验目的UART的时钟框图初始化UART0引脚设置波特率和串口控制寄存器的设置数据格式的设置其它设置串口初始化函数整体实现putchar()函数实现getchar()函数实现puts()函数实验目的S3C2440共有三个UART,分别是UART0、UART1、UART2,本文使用最常用的UART0实现JZ2440与PC机的串口通信。并利用串口实现putchar()、getchar()和...原创 2019-05-24 16:11:08 · 789 阅读 · 0 评论 -
修改S3C2440的时钟工作频率
之前写程序都没有设置过S3C2440的时钟,一上来就是设置寄存器和点灯,这和stm32的使用很不一样。在本文中将设置S3C2440的时钟频率,并用流水灯来看效果。设置的频率如下表。原创 2019-05-22 23:48:09 · 1048 阅读 · 1 评论 -
JZ2440 SDRAM的使用
文章目录S3C2440的内存地址映射内控控制器的配置BWSCONBANKCON0~BANKCON5BANKCON6REFRESHBANKSIZEMRSRSDRAM初始化函数测试SDRAM是否初始化成功有关Makefile的注意事项在学习SDRAM之前,最好看一遍这篇经典的关于SDRAM工作原理的介绍:高手进阶,终极内存技术指南——完整.pdf链接:https://pan.baidu.com/...原创 2019-05-27 17:25:24 · 419 阅读 · 0 评论 -
4.3寸TFTLCD显示JPG图片
说明在JZ2440上显示自己的图片,全屏显示。已知分辨率是480*272,为了适应lcd的大小,又不使图片变形,需要对图片进行分辨率调整并裁剪,这里用到windows的自带画图工具。需要获得图片的像素数据,用python的PIL库对图片进行像素提取。硬件平台主板:JZ2440主控芯片:S3C2440ALCD型号:AT043TN24 V.1分辨率:480x272像素:24bpp像素格...原创 2019-06-30 14:28:39 · 5292 阅读 · 1 评论 -
mount: RPC: Unable to send; errno = Network is unreachable
用JZ2440开发板,尝试挂接网络文件系统,输入命令:mount -t nfs -o nolock 113.54.158.8:/work/nfs_root/first_fs /mnt113.54.158.8是虚拟机的IP地址,/work/nfs_root/first_fs是虚拟机上为单板制作的文件系统。/mnt是单板上的新建的目录。输出错误信息:mount: RPC: Unab...原创 2019-08-23 19:04:58 · 2116 阅读 · 0 评论