程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8329|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。! _$ _+ y/ p  O" {: ~  H2 e
#include <linux/init.h>
+ C% S* E6 N7 x#include <linux/module.h>1 M7 k3 M: g' q4 _! U2 ]6 k# n. X0 r+ _
#include <linux/kernel.h>
+ F. e9 T4 S! N( J6 U0 h# k, d, V#include <linux/types.h>. @/ ]: `2 ^$ x2 k8 P5 E
#include <linux/gpio.h>
( @6 z2 I' V9 @8 T, _3 e$ h#include <linux/leds.h>& v* d; L3 f% ^$ ~0 M+ K/ w
#include <linux/platform_device.h>! ?5 M7 O7 _1 g# N
4 A: n% T7 N& f9 S& y
#include <asm/mach-types.h>
' U: I6 E" h; y# S4 J. m. F#include <asm/mach/arch.h>
. g6 E0 q/ c* @% I#include <mach/da8xx.h>3 v+ b: S% R9 i% w
#include <mach/mux.h>, p7 w- d) C3 I. W2 I
. n/ H) O/ x' o2 V, n! ^$ l8 I& Q
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)2 I! \& ]" w& @6 d, g7 ~7 B
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 \5 p+ H% x+ f8 P/ O  X
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1), p2 {8 w6 U. H0 W# u6 s5 [/ C
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 d: B7 C! h5 {  `" `$ e! Z; p8 H, q: i' x1 k4 C  p; ?
/* assign the tl som board LED-GPIOs*/
( C% @  w; U/ jstatic const short da850_evm_tl_user_led_pins[] = {
; O9 d" i: u) L6 g5 t        /* These pins are definition at <mach/mux.h> file */. |# \/ B# f: I0 o
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 \+ v+ n; F# w, z
        -1/ v$ x: a  z3 ], j
};) P- _! |- O/ J' V* ]

8 L, l' H  j6 o: H+ y% h8 A7 Tstatic struct gpio_led da850_evm_tl_leds[] = {# b- ^$ f- Q- }8 \
        {
) L0 b0 _! K5 I- n4 e0 d* t                .active_low = 0,
2 @& M! d- U! W' k( Q                .gpio = DA850_USER_LED0,. r  _( }8 ]/ v/ O5 N0 w
                .name = "user_led0",* \4 T7 U0 M, S- Y* n! j, d
                .default_trigger = "default-on",$ u. Q) ~# U# T4 X
        },) |4 w0 D3 B! O+ A
        {
0 {- |9 E& g* V) o5 ~                .active_low = 0,
; c7 r/ {! S8 I2 z* b                .gpio = DA850_USER_LED1,$ q* {5 ]: r" N- _! H7 |
                .name = "user_led1",5 I7 t# b) r, b; Z7 D
                .default_trigger = "default-on",
! B9 S) }3 a/ l8 d$ t        },! I+ u/ j% _9 Q0 y
        {
" e. l6 _% H3 w5 y  Z                .active_low = 0,
* F- n0 o% \$ F6 J8 [6 `                .gpio = DA850_USER_LED2,
' D( w4 f* a' {# n; ?                .name = "user_led2",% ]) R5 j* m' P4 ?% x
                .default_trigger = "default-on",/ q: `* O- b. r
        },: |9 \9 o4 F1 ?8 N7 o/ W! g
        {
: S, v; K  {- ^! J1 M- c+ @3 l4 H8 }                .active_low = 0,
1 i) g) a* C$ ~1 N                .gpio = DA850_USER_LED3,
/ w2 H9 p1 N/ x                .name = "user_led3",
5 |9 h. X0 E4 ~( T5 O                .default_trigger = "default-on",3 ?8 y& z8 U9 X* h: |/ j
        },! v) P. q6 N& W3 P) d  a
};
( a% \  w! ~3 S3 K
/ M$ q% n" m3 s; y' p  n4 Hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, j2 {- }8 c' }$ e0 r1 ~        .leds = da850_evm_tl_leds,
5 _$ P9 x# [$ M# K7 c        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ f4 W! s. N1 z- y5 m9 x# `- r! w
};/ r; X- a# l/ T$ f4 X3 K

+ w) p$ l& m, `+ fstatic void led_dev_release(struct device *dev)
' Y; f( `* G1 d+ Z{  l* H/ r# r1 W. Z9 f3 C
};
5 M4 Z/ X/ T8 w" _% S
7 t5 g. ^' b$ G; z; Dstatic struct platform_device da850_evm_tl_leds_device = {2 p; I9 e- i2 j, y* u# [- [! o
        .name                = "leds-gpio",
; G5 l* _" ]4 j7 V& }        .id                = 1,6 N7 ~4 B9 p! L. Z: f7 P
        .dev = {2 Y! I0 d* b) {5 o  O% }9 v) a
                .platform_data = &da850_evm_tl_leds_pdata,7 Q, E$ Y( F4 @
                .release = led_dev_release,/ f' \" g% N# j7 n1 g4 g; m
        }
9 V6 t9 J& L4 b8 W};% U6 u0 J9 p% B# J1 C- W
9 B4 }, H+ l# U) x+ t3 ]
static int __init led_platform_init(void)4 t0 n/ f9 M" t3 G. d3 w
{
2 Z5 O& z7 h5 l% [) `+ t        int ret;) F9 o& i9 y* u. L) K$ i( ~3 j
#if 0
5 g8 [8 V9 _- Z4 ?8 j! |        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);9 e! O4 S9 t. E! d3 Q( v
        if (ret)
* O! F$ V8 |4 V: ?0 C+ I                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
0 }* g3 s, p# {( f( K- A. _                                "%d\n", ret);6 Y" p) I+ _* `3 ]# L8 e
#endif
' o! ~2 I' v& R! |        ret = platform_device_register(&da850_evm_tl_leds_device);3 m" @, _- X$ v9 K1 c9 y. [
        if (ret)
/ H" ]  P/ m/ y/ _; f                pr_warning("Could not register som GPIO expander LEDS");
6 m2 v$ y* J5 k6 g: T        else
& B- T$ `0 X/ D7 L  _                printk(KERN_INFO "LED register sucessful!\n");6 a7 q1 P& W- N) o; q4 x+ A
! {+ f5 q3 p6 l* T9 g) s8 D* a
        return ret;2 o3 q& Q  J+ f
}3 G, E( `" [9 F  b/ j
/ J4 C8 j/ \; L* i) T9 t3 Q8 r
static void __exit led_platform_exit(void)
3 y1 z; \) O7 l0 r1 u% J{: [7 Z( ~* I5 p3 W
        platform_device_unregister(&da850_evm_tl_leds_device);# K  e; s# d/ ]! u: ~2 U: B
1 t3 F' S% ^- W' C6 s0 I0 A
        printk(KERN_INFO "LED unregister!\n");/ j  W' E' Z6 q& d6 w% A2 j- H
}% v9 I# N; d1 C# l# W4 c* ~

% Q4 n: _! I: c5 w! C% s' I  _module_init(led_platform_init);
* K( l! }) _* P: X+ c5 P& wmodule_exit(led_platform_exit);
0 x; g1 o. J; E! g% U$ _" N
0 v9 ], E+ l6 }* K+ ?$ f" h  [0 N, }- J" bMODULE_DESCRIPTION("Led platform driver");3 J- h) e2 c; r* e6 g8 w
MODULE_AUTHOR("Tronlong");% ?7 f' o' h% @) D
MODULE_LICENSE("GPL");; |- X- f( d7 Q$ Z+ v) W
+ w8 A* Z. S8 H5 `* O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-1-23 00:46 , Processed in 0.038069 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表