程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' c; S& i2 I! [$ G% p#include <linux/init.h>* z7 R5 U2 E, v+ g6 k; \
#include <linux/module.h>
8 o6 m3 R$ f" z- {4 R3 w#include <linux/kernel.h>0 W% R5 k8 o) h: d1 b
#include <linux/types.h>
1 f& C2 u% H) Y1 [, s- ^' ~#include <linux/gpio.h>, U6 V; _- c0 e6 U  f5 B# |. G
#include <linux/leds.h>
7 A9 k+ E" h9 e#include <linux/platform_device.h>
, I: q( E3 H$ V- j# x1 y! I' `' e- k( z" V7 `
#include <asm/mach-types.h>" x! D& H- @% ~* l; i% ?
#include <asm/mach/arch.h>
% [& _! D  x, r/ B9 Y; v#include <mach/da8xx.h>" \3 N% N! {: y7 j) E" b
#include <mach/mux.h>
8 J$ w& y6 W; }6 [$ `; j8 M8 }+ M" D
- [; W4 o% A- {( p- G% P, O: f) |#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; r+ a9 K! @) c/ I0 a% }#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 `# G. [0 {1 I) R, H$ I3 Z! n
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# z0 O6 C! U1 H$ ?# N5 I$ S! J#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 P4 l3 \( C8 {$ p' d' v! W
! f% c7 i7 F) O3 n5 a" g/* assign the tl som board LED-GPIOs*/
# f" l4 z% S$ X/ l0 A, O( p/ lstatic const short da850_evm_tl_user_led_pins[] = {
! Z" ]/ }& c% n1 ~6 E7 I        /* These pins are definition at <mach/mux.h> file */
6 P8 ^8 N9 S  V7 k  F' i1 K7 B( G& h        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
* C) i& _$ P' u' I! f        -1( K+ L6 ], p0 H: c/ I
};
# O* h4 N+ y6 c- K( _$ j, [+ p
* Q- r5 E. }9 D2 zstatic struct gpio_led da850_evm_tl_leds[] = {
2 {( _* z9 F! @/ L* i        {
, L% S1 @$ @" A& R7 S4 ^                .active_low = 0,
$ w4 k5 C. @" L                .gpio = DA850_USER_LED0,
: A! o& r  k2 o9 i" P. L                .name = "user_led0",
$ U0 l; Z1 @/ G% w5 q4 S                .default_trigger = "default-on",
$ }7 X# z" `8 o# w( \8 B; c! V8 ^        },  ]" Y& F. J  V, E( g
        {
6 E, c5 t7 c, e: ?$ z" t! {+ s                .active_low = 0,1 V6 B8 H/ H* M- y( t/ _" N; e, ^, E" G
                .gpio = DA850_USER_LED1,
3 |6 ]# q. y! V0 b                .name = "user_led1",
) A2 C; U2 n& u# Y. B                .default_trigger = "default-on",% o; c, J9 C! O% ?0 m
        },. }. I1 R: O; n7 }, ^6 n
        {
$ M8 k/ S9 f+ a# m                .active_low = 0,5 @9 L1 _7 V: D% e
                .gpio = DA850_USER_LED2,
7 |0 D* i  B& p+ N$ v3 L                .name = "user_led2",) Q( D1 Q: t- q1 q5 p
                .default_trigger = "default-on",, L* B  y- M; X
        },+ V: c) E; x& ~, ^5 n# I
        {
) `; a6 N3 W3 m/ U+ T& [$ V                .active_low = 0,
. I5 e/ V, J% ?" r/ h  ?2 @                .gpio = DA850_USER_LED3,
/ ]: V- W2 m' r0 v1 J9 \5 y                .name = "user_led3",
) i( J% ^# G" F. j. i+ v( b$ g                .default_trigger = "default-on",
/ a% w. e7 k- @: W$ i        },
% f% b3 l# ^7 Y: V; I1 T7 N7 _2 g4 t};
, ^1 `/ ^! w! r7 j0 Q, b  H
1 p; t/ a' P9 v7 r' J# _) Kstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 w) D% c3 d1 F& w        .leds = da850_evm_tl_leds,
4 E9 ^- x% ]0 i1 F: q- J( J        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
# I+ m1 [6 E( s( U* @( _};
' V+ P/ z1 }( S) x' I) a" c3 E! V( p) t4 K- u/ ?8 Q6 \
static void led_dev_release(struct device *dev)
8 |, g1 u+ E5 h: |( Y{: l; j8 D0 v, l
};8 q# M7 Z9 p' ^0 `

7 L* G, N! f0 n1 L, Ostatic struct platform_device da850_evm_tl_leds_device = {
9 O5 m  {1 N. b        .name                = "leds-gpio",3 ~; \' n+ M7 \
        .id                = 1,
( l  B* ~4 Q# h: G; o2 E- ~( g& A        .dev = {4 x( h! o2 i; K0 U
                .platform_data = &da850_evm_tl_leds_pdata,
. k+ W( G/ y3 }  [0 C) |1 d                .release = led_dev_release,9 \( j) F. c9 F7 R6 i( w8 G2 F+ N, Z
        }) e- m* @, h' I) q- H6 @! L
};8 Y/ m2 L! C' ?9 V- U
  g+ y- n6 L$ X: G& K2 {4 M
static int __init led_platform_init(void): r, n3 j% t  X8 J" h! Z1 j- A
{# V6 M3 s6 T2 i! f  t# V
        int ret;
5 w: S8 W9 V4 G# Z; l. \#if 0
* I2 p( O6 o% A. {: t: T7 ~        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
% V9 D6 B6 d& S7 i! ^$ g0 |        if (ret)
2 R! S1 k* K& i! Y" ?                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 C$ y* l2 Y) P& x  @/ h* L9 A                                "%d\n", ret);
% o1 |7 t- w) ]+ D& g& C1 w( i" p#endif
; d; ^6 Q9 z2 N        ret = platform_device_register(&da850_evm_tl_leds_device);
# L7 s& t: C6 t5 y+ b" U% O7 t        if (ret)
% c. \1 G: E+ N' ~( Y. K                pr_warning("Could not register som GPIO expander LEDS");7 ~2 a* f1 M: m( q0 @: k) C. Y
        else
' R* {% q, J1 S& W4 y                printk(KERN_INFO "LED register sucessful!\n");
/ v5 v3 B9 w* j  L2 Z' L! w; b& o. T
7 w$ t3 u" ^" I9 V8 d5 a        return ret;
9 n1 b3 W! e) V, L$ F/ T0 E}
, D( r( P: |7 ~2 J7 O0 f
. \8 P6 y9 E5 N! p$ r# H0 estatic void __exit led_platform_exit(void)* k* _" @$ }+ T
{
# u5 L' f- i9 G% r1 e- W        platform_device_unregister(&da850_evm_tl_leds_device);* ~& G" B  x8 v: a- U7 d$ l

, w; Y4 i8 ~# |5 v        printk(KERN_INFO "LED unregister!\n");
2 m! l* ^4 S" M% B* x2 S/ G$ F5 e0 I}, k3 v5 C7 M: B; y9 J2 N

$ d0 n$ E/ _% B, R/ V  Imodule_init(led_platform_init);% Z7 F, p1 p$ ~# L4 ~, w3 t
module_exit(led_platform_exit);) _1 z  U/ u2 K' n" R) v+ \, G
# D8 S, o7 X4 Q0 W+ M1 \
MODULE_DESCRIPTION("Led platform driver");5 @$ e: }+ l$ C% a/ m. N
MODULE_AUTHOR("Tronlong");; x9 A* Q) Z$ K. S
MODULE_LICENSE("GPL");
. c% U! ^9 \' Y6 e( X! K- u  o  T7 g, M5 }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 16:51 , Processed in 0.038133 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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