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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 p5 ^4 V) P' {+ }- n( [# O
#include <linux/init.h>% Y# ?* j" `7 V
#include <linux/module.h>
# K, w0 o1 x7 ], i#include <linux/kernel.h>
9 `. f# |" z& Z( |! n0 J3 H#include <linux/types.h>
: ~: p+ V# u6 B% c( t; \2 f#include <linux/gpio.h>
( ?1 X8 z- D0 ^# d7 |#include <linux/leds.h>
  E; Z1 N; R* w0 k- n  u#include <linux/platform_device.h>
8 ~) p, ^" g' {4 M, n$ B8 w6 {) f
#include <asm/mach-types.h>
6 q4 h$ x: q7 c, R# B0 \2 C) |#include <asm/mach/arch.h>7 ~, \! o. B/ e$ |% C/ T
#include <mach/da8xx.h>
2 K1 ?, G" Q2 Y* W#include <mach/mux.h>" y1 g9 `/ I  h+ U5 v' u
- X6 t" b' f3 x2 W4 R2 n8 l
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ B  z3 o% |% j0 W# r2 j4 n& A/ w
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 \6 Y1 t& ?, z6 i#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) \! m! ~  x' Z  `0 Y+ T( j& R#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)$ b- |3 ~( C! y5 |: ?

6 b: }. s: n9 j2 t$ a" s/* assign the tl som board LED-GPIOs*/) D4 m0 T( Y7 g' J( M7 y
static const short da850_evm_tl_user_led_pins[] = {& w# W3 Y% t! }4 t+ H$ o
        /* These pins are definition at <mach/mux.h> file */
0 F; w' U  d9 C        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 l5 u% l0 c- H, q2 [  {4 G- Q        -1% _$ `& T) E' c. F0 @4 [# m' Z& y# o/ m
};
# i, E2 ?- s; V# H' I: D
5 z: q. ]' s# \  I0 v" jstatic struct gpio_led da850_evm_tl_leds[] = {
( A4 _+ m) {9 ~9 p6 J- S4 o5 r        {
& |' g5 Q9 d6 t* R9 _                .active_low = 0,
& C1 J# C' o. t' r* s0 ^! ?$ C5 `) d                .gpio = DA850_USER_LED0,
, ?: q! B1 o5 @# {0 @9 @- f& t                .name = "user_led0",
4 A4 y4 h2 ]# a6 e5 b6 y                .default_trigger = "default-on",
! }: n# a1 D5 {4 {1 S        },
- {, N4 [$ T$ _3 n, v# {+ a5 b        {
0 M" f/ L' |$ I% Y                .active_low = 0,
" D) J$ `" s, a                .gpio = DA850_USER_LED1,
8 d1 z- b+ |) Z! h% l9 U$ T+ y                .name = "user_led1",
& L: Q% `0 T) u                .default_trigger = "default-on",
$ \( C, ?6 {2 i; y; J+ o        }," _" u5 {9 r7 A% ^; T2 l
        {
1 g7 ~8 {9 W- q                .active_low = 0,
+ }. }% D" G+ K) x5 m, \5 b                .gpio = DA850_USER_LED2,3 a# R& }) T/ p- q& ~
                .name = "user_led2",$ G* m) i: y; K1 J6 t
                .default_trigger = "default-on",( y- Z  L# G" r
        },1 z3 @; j$ Z6 Z
        {
5 T9 d: F# o1 h  j: ^/ J; i                .active_low = 0,3 P6 Y/ u! A$ v, m* s, S4 [8 f7 a
                .gpio = DA850_USER_LED3,. P2 k2 j1 F) h) r! d4 P( y
                .name = "user_led3",
& c8 f4 y+ X3 Y, Q9 i2 v                .default_trigger = "default-on",
  ?# P& Y. v+ X& H$ H2 c0 ?7 e        },
( R* Y# D! p5 r};
- b/ x4 I5 H6 c0 {" Y# o- }2 {4 N9 e6 B/ ^; `5 K
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! e; {3 P  \0 ~% o$ |1 w/ J3 T
        .leds = da850_evm_tl_leds,
/ g7 C6 q. n" w6 B! R/ S. x6 i' ]. U6 p        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
# P$ O/ s4 M: u: g' t};
2 E# {' i6 w7 @1 W* D8 N0 |6 J/ ]6 Z! B9 q
static void led_dev_release(struct device *dev)
/ @9 D$ P  b! I' L{2 c% c2 Y( J0 z# V
};
% Q* \& A$ G  M2 }  W, i6 F$ O& C8 _, p$ o  p; V
static struct platform_device da850_evm_tl_leds_device = {
9 d8 Q7 G$ H7 K        .name                = "leds-gpio",
. Q% @1 o; A1 d  N1 n% ^) X        .id                = 1,
) d4 j2 S4 j* H; ?        .dev = {
% d" e8 B. q9 Q0 m3 R                .platform_data = &da850_evm_tl_leds_pdata,
, B% J" d+ W& h3 q2 ~                .release = led_dev_release,
0 F' p: x' z4 m$ p$ G, \  F        }
: f5 L3 ~( X) @4 D};! _/ |/ B  u, _, V1 d1 w, W0 p
( t7 Q2 S# m; ~& s+ p, z
static int __init led_platform_init(void)
; }0 j9 H" K8 \- @1 S6 O$ ?{. U1 X4 }# Q$ B" i" S
        int ret;
8 c7 g; l, r/ [; A+ d& H" u, n#if 0
8 S7 A2 c5 Q. A        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; Y+ A. c1 a( L4 R
        if (ret)
3 p, d3 q. T, E% l0 j                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
, F( R8 L' p% L! [& X6 e" M+ r' C$ R                                "%d\n", ret);8 @* k! w$ o7 {) @4 e' K: T
#endif
' J6 }2 `0 n: `; a! t5 `- g        ret = platform_device_register(&da850_evm_tl_leds_device);. q$ t& T2 X+ E- E
        if (ret)
/ g- c( y6 |$ ]" O* _$ {7 I) w                pr_warning("Could not register som GPIO expander LEDS");
7 f0 P8 O6 v$ R6 d1 \: i5 \        else
! d/ e- Y  h) |9 ]8 E& T% [$ P2 S                printk(KERN_INFO "LED register sucessful!\n");
& W) W- O  b+ V- x+ Q
$ N5 }( H" Z$ B1 i+ ^        return ret;( o6 @  u* G2 z$ [/ X) Z
}  N# E2 w5 y8 G/ A8 c/ @

0 y0 G( m. M, T5 K* k1 Tstatic void __exit led_platform_exit(void)2 ]; W% C6 `/ Z1 O/ C9 o
{! q$ t2 a# Z) I8 j% O! u5 g& R9 W
        platform_device_unregister(&da850_evm_tl_leds_device);# A  W" L, R% Q, N
; I/ c- l% v# y0 e  L2 c# @4 L
        printk(KERN_INFO "LED unregister!\n");! E" p  e% T9 p4 V( k
}
1 |0 p1 z- R& V
" N1 {1 w9 \8 D5 }; _1 D+ A1 ^) gmodule_init(led_platform_init);2 G. Z/ p4 I* L& {% ]! O7 }
module_exit(led_platform_exit);
0 p/ I. g$ ]) ]) O, x$ v! c( Q% L% y9 z- v2 v, m3 o
MODULE_DESCRIPTION("Led platform driver");# w  l9 n+ b: V3 I1 s* S" |/ e
MODULE_AUTHOR("Tronlong");0 e; g$ t3 k( ~& i1 m
MODULE_LICENSE("GPL");+ b" @) b$ C, `

# D: Q' Y% U  ?  r- X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-17 06:48 , Processed in 0.038947 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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