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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 Q5 w+ B. f0 {#include <linux/init.h>1 e2 X$ b9 M0 }: X4 m: p
#include <linux/module.h>
. p1 H$ f* C! v2 R#include <linux/kernel.h>  u! t3 A( b- f/ s% O+ G$ G$ L9 q
#include <linux/types.h>! N/ W8 V) V4 L* ?5 r; M
#include <linux/gpio.h>% ?+ a$ k+ b2 ]& T: ?" j
#include <linux/leds.h>
! T- I$ T1 W: T#include <linux/platform_device.h>( C/ \1 a! @( \) j

4 C( c. e. X5 c#include <asm/mach-types.h>7 ]9 B; o/ U2 t4 g6 ~9 n" h+ E: x" s
#include <asm/mach/arch.h>' X9 z! I+ j! e" |( t# H
#include <mach/da8xx.h>! E* n; A8 v; t# M0 S( v
#include <mach/mux.h>
# Y% x4 l3 N. I: P+ @, R! U5 ?8 \
2 P' _  O# C; S#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# }& x  C7 j6 _
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' z- h5 N# n6 Y3 Q( E! ]8 R' p4 O$ V#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)" i% }1 R4 }- q6 E/ M% z; f: d
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): ~- N' d! j0 _, G1 _8 H

/ P* h# t( y) n; r, p% d/* assign the tl som board LED-GPIOs*/6 ?/ f3 i% A8 q2 E7 M
static const short da850_evm_tl_user_led_pins[] = {
8 Z) |) c% I( \. @        /* These pins are definition at <mach/mux.h> file */7 F1 U, X& H9 i
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ g  T2 Y( |8 b& T% ^9 a
        -15 Q  P6 x3 Q9 U+ `0 G2 U) h
};: p1 H, c' @& v  l  ]
- {. A$ R, M; F  N
static struct gpio_led da850_evm_tl_leds[] = {* P; i0 E  {3 z6 v$ @/ o
        {4 N4 f- Q" t- R8 v
                .active_low = 0,
/ X0 W) e2 O  V; u9 Q2 R0 U                .gpio = DA850_USER_LED0,
" _" \2 z1 Q4 |                .name = "user_led0",
( E0 q# E' v/ N% ?) {4 z/ S- O                .default_trigger = "default-on",0 ]$ f6 B" s, ~  M& H( P1 M- S+ q
        },
( F& c; W; ?% N. e. e6 x4 m        {
0 I+ j& H0 a# }: b                .active_low = 0,
! F+ \- P- G2 G# P4 b                .gpio = DA850_USER_LED1,% b4 {/ t0 T( ^" y$ x" F
                .name = "user_led1",2 w# v# K0 o6 J; G
                .default_trigger = "default-on",' W4 O2 t) S$ J9 V. x, u
        },. Y- p" F$ a5 S# A
        {
9 i. @2 c/ r/ R1 K0 {2 z                .active_low = 0,1 {8 z% l7 M' z. d4 |( c( T
                .gpio = DA850_USER_LED2,
, ^' T) |7 |& t6 K- q- [                .name = "user_led2",
6 V$ H6 e7 n6 ]# x& U9 D$ [7 N                .default_trigger = "default-on",. P$ J+ Z$ d2 V
        },! n2 Z7 r+ Q- g# d1 g) S
        {
( \1 n0 d7 d, e  @                .active_low = 0,$ w7 V  Y) x. u( R$ K
                .gpio = DA850_USER_LED3,
4 L8 \" A% S' l! ]; X, v8 ~% ^                .name = "user_led3",7 S$ ~6 X7 ]* b+ U! g" ~
                .default_trigger = "default-on",+ L1 w1 g( u2 m
        },
' V& @/ ^5 ^, q};+ F; b+ u. ?# z2 i
. E& r( u5 X6 r% U# L
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 s+ ?5 g* ?3 L5 ]) E        .leds = da850_evm_tl_leds,
9 O6 v+ v2 M) i- ~. ~% e" F        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ m. D" F  R# E4 r# p. v- W$ Y# `};
) s' K5 m0 J+ y# }3 y% B% S' a" I7 S% W+ T) L0 M
static void led_dev_release(struct device *dev)
+ G) \; ]4 |3 _' I/ F{* c  m0 W8 U( t
};
+ E6 Z9 @3 O% ~4 ^& N. `) r* g( u1 F, ?8 b7 F4 W& D
static struct platform_device da850_evm_tl_leds_device = {
. K5 F. h8 j' q9 ~4 s, \; t        .name                = "leds-gpio",; I% R, g6 P9 R4 N  W. d" M
        .id                = 1,8 O% }6 U! M+ M8 k% K6 J2 `& Z
        .dev = {$ A7 A# o6 ]& s. \* \' q7 Y- ?
                .platform_data = &da850_evm_tl_leds_pdata,. g" m4 I/ [: H. s6 G- ^
                .release = led_dev_release,
. i4 L) B6 @. B, V  e1 l/ u        }( p' v: V" l. f% W8 u! U
};
: P' Y5 c6 a" o, N! D
* D7 L  b8 y7 n; P5 Bstatic int __init led_platform_init(void)6 e1 }- g1 v0 r5 ^  y* H# W
{
/ |4 q3 O* Z2 n2 T- D6 H        int ret;
* C9 ^% m/ V9 D) e' c- {  `5 G#if 0
$ q* Q9 D, Q- }; [$ u5 h+ m3 N        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* p$ [# Y1 I- r8 J        if (ret)$ [$ d7 C4 ^$ R+ [  V/ n. V$ p) G
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"" f* R  V1 N& {1 B
                                "%d\n", ret);/ P2 Z. {& c! J: t
#endif7 ^1 V$ L7 w  J& _  `9 W
        ret = platform_device_register(&da850_evm_tl_leds_device);
. L4 U* _& f2 W2 s1 N% {, J        if (ret)* H6 U' f: R" n
                pr_warning("Could not register som GPIO expander LEDS");
0 a$ o+ _* H/ q% n- @! T$ p        else, E8 y% A) j3 L' r) W
                printk(KERN_INFO "LED register sucessful!\n");
% ~* a" A% _: [) w/ J% o! s( \( }% Z9 Q
        return ret;' y4 N% v. H$ U( V2 V" k
}
, n  r( n3 l4 j. T3 C6 S) o( t  K! G! t( S
static void __exit led_platform_exit(void)) V% w* T+ @' }6 m! }6 ^( j! Z
{
& [3 H8 M& D2 k& b) B# Z        platform_device_unregister(&da850_evm_tl_leds_device);  b5 w) |1 |' I! N! ^: _% V9 N
' X5 y' m- i" z% d$ D1 ?4 e" t% y
        printk(KERN_INFO "LED unregister!\n");
  P! P3 r  ^! L: C3 |( s4 U}
2 o- \! h8 J- J4 ?: Y& w+ V' o" a) p% D# K1 B
module_init(led_platform_init);2 ^, ^. H5 X/ U, ?0 [* D
module_exit(led_platform_exit);
0 N* F7 K" p  m7 s7 G
: H+ L+ }5 _; x# l8 B: D( Q; {5 NMODULE_DESCRIPTION("Led platform driver");2 Q; S7 n) h' e$ H; |8 o
MODULE_AUTHOR("Tronlong");* g; j/ f# C) P
MODULE_LICENSE("GPL");( y& l- D. t" o) J
( |2 f0 W3 ]1 I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-4 10:23 , Processed in 0.040844 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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