嵌入式
guiwin
这个作者很懒,什么都没留下…
展开
-
do {...} while (0) 在宏定义中的作用
如果你是一名C程序员,你肯定很熟悉宏,它们非常强大,如果正确使用可以让你的工作事半功倍。然而,如果你在定义宏时很随意没有认真检查,那么它们可能使你发狂,浪费N多时间。在很多的C程序中,你可能会看到许多看起来不是那么直接的较特殊的宏定义。下面就是一个例子: 1 2 #define __set_task_state(tsk, state_value) ...转载 2019-12-06 09:49:33 · 262 阅读 · 0 评论 -
一题一讲__中断(ISR)与可重入性
1、找出下面程序的错误 (一个中断服务子程序ISR) interrupt double compute_area(double radius) { double area = PI *radius * radius; printf("\nArea=%f",area); return area; }分析:1、ISR不能有返回值,必须用voi...原创 2018-03-16 10:35:48 · 2153 阅读 · 0 评论 -
代码编写及阅读规范
阅读常识1、C语言中在函数名或关键字前加下划线 一般情况是标识该函数或关键字是自己内部使用的,与提供给外部的接口函数或关键字加以区分。规范综述C++ 是一门十分复杂并且威力强大的语言,使用这门语言的时候我们应该有所节制,绝对的自由意味着混乱。我十分清楚每个人对怎么编写代码都有自己的偏好。这里定下的规范,某些地方可能会跟个人原来熟悉的习惯相违背,并引起不满。但多人协作的时候,需要有一定...转载 2018-03-22 17:07:18 · 844 阅读 · 0 评论 -
Shell 资料整理
linux中shell变量$#,$@,$0,$1,$2的含义解释:变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 $@ 所有参数列表。如"$@"用「...原创 2018-06-28 15:00:38 · 161 阅读 · 0 评论 -
Linux内核中Makefile、Kconfig和.config的关系
我们在编译Linux内核时,往往在Linux内核的顶层目录会执行一些命令,这里我以RK3288举例,比如:make firefly-rk3288-linux_defconfig、make menuconfig、make firefly-rk3288.img、make zImage等等。先不管这具体的含义,首先提出几个疑问:本文引用地址:http://emb.hqyj.com/Column/75...转载 2018-07-16 18:59:54 · 696 阅读 · 1 评论 -
合并烧写程序BIN文件的两种方法
在单片机的开发过程中,经常需要将两个单独的BIN文件合并成一个文件,方便烧写和生产。下面结合STM32的IAP Bootloader Code和Application Code的合并,介绍两种合并BIN文件的方法。 首先简单介绍一下STM32的IAP。IAP(In-application-programming),即在应用中编程。有了它,产品发布之后,仍然可以方便的升级固件,而不需要...转载 2018-07-17 10:14:46 · 5661 阅读 · 0 评论