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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 b2 ^, O4 u- R- T# r#include <linux/init.h>
. X$ `- V/ \! x' f#include <linux/module.h>
2 W& V" J7 D3 q#include <linux/kernel.h>
& j$ m; t9 W4 J4 H9 @# t#include <linux/types.h>
$ N& P* |; t9 I5 _* n#include <linux/gpio.h>( ?+ E' Z% F3 {
#include <linux/leds.h>/ \9 B8 u1 N. C- a$ A1 x% ~
#include <linux/platform_device.h>9 h1 {5 X4 b8 B% c

9 ]+ p, r+ R1 G#include <asm/mach-types.h>! ]% R; U$ V! S5 T
#include <asm/mach/arch.h>, H4 i( ~# l2 n* y; T
#include <mach/da8xx.h>( y( f/ ]1 L; z) A) E0 s; W6 u! N
#include <mach/mux.h>
5 ]; t& o6 M7 j1 f8 \. q" k6 p9 K% I! ]# @1 I8 M# C
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- n5 u# ?+ g: a* G
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' z0 C3 e# A; H& W5 v" l
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)4 r2 ?# O; L0 |+ O* u. r) D& C
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 l3 K$ E/ V1 n6 ?. U) U& q# u
+ [* A6 z8 M$ J" p3 C/ @. h
/* assign the tl som board LED-GPIOs*/8 O6 A6 G+ t( s
static const short da850_evm_tl_user_led_pins[] = {. f8 u5 B' {2 l5 p
        /* These pins are definition at <mach/mux.h> file */& y. Z# X3 @* `  I! W1 }& V3 g
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; h, L0 N% y1 n4 G8 Q8 X& i
        -1+ ?1 A" H% G) N4 [
};
# H. p% c) T8 \5 ~2 S
  @& M3 j( F* fstatic struct gpio_led da850_evm_tl_leds[] = {6 x' |& O' G1 c/ N1 X6 d  S
        {+ {5 I& q7 A( D# k( f
                .active_low = 0,
' h, c% h* |: f# F7 u, j, o) u                .gpio = DA850_USER_LED0,
  K7 F! o0 i6 J& e; N                .name = "user_led0",! A. K: x6 H$ k9 J7 z: x! r: c+ G0 U' s
                .default_trigger = "default-on",
6 [$ n( w' S- U8 x! x9 d; M' ]  ]/ q        },
0 X* d! _  L" `4 g9 V, M        {
, |5 M7 }+ \4 d3 c1 F( Q# \                .active_low = 0,
2 H- s0 k* |' R4 U$ k/ s9 f3 r                .gpio = DA850_USER_LED1,
& t' Z9 E6 A( \5 E- Z  A                .name = "user_led1",  I4 G. g* q9 Z4 G4 Z8 Q6 |
                .default_trigger = "default-on",3 g3 t! E- E& z6 m; a$ h( y
        },
) @. J8 d: Q# u7 E0 N. H, ?        {2 ^6 i7 o# s, E
                .active_low = 0,9 d* y. T3 k, @, D- {( B/ y0 B
                .gpio = DA850_USER_LED2,
$ W+ r4 }5 f7 B! D3 Z                .name = "user_led2",
0 N0 `" Q, ]" }) g                .default_trigger = "default-on",8 w# @6 T8 n6 c  |1 ~* p) V
        },3 Y5 {( o% V* {- G
        {# X# @# @& W& S) Y
                .active_low = 0,0 s" B$ x5 {: t- x) D; j
                .gpio = DA850_USER_LED3,. L$ f' e, a8 d
                .name = "user_led3",
# E. ^1 H8 c  w+ {6 E/ B* t                .default_trigger = "default-on",
9 s& E; X8 g9 j, T' n        },# |3 v/ v# d+ E* M/ u
};2 \% T3 q6 ?% x9 E

, x, [" Z6 s& G0 f8 B3 hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' [5 H* i- a8 F& i
        .leds = da850_evm_tl_leds,
$ l5 I* {9 A0 \) D/ a" T1 R        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, j! g7 O% V6 g9 G
};
; T2 L# c( e% x5 p
8 C2 E' \) p" ]! s8 ostatic void led_dev_release(struct device *dev)
5 T' {5 M9 _* Z1 v2 J{
* u1 N  `; |$ G0 l' V0 ^1 {};
* D/ e0 S- k) w1 F( p/ @, r. O, s( o) X. y$ z, s% |/ n
static struct platform_device da850_evm_tl_leds_device = {7 {' v' ?+ I+ y) }( f
        .name                = "leds-gpio",
4 s# X# P3 Z5 h: j) V# p) u) b        .id                = 1,
" s: y1 e5 N/ {# V9 t        .dev = {
! {/ I: a8 D5 S/ s+ R- @                .platform_data = &da850_evm_tl_leds_pdata,
7 y: F5 l$ q: }7 V                .release = led_dev_release,3 j6 S8 Y6 b( s4 |  d0 n) Q
        }4 ?2 I2 \" m3 \6 E2 t7 p/ s
};- e5 s' o$ L  [# q

7 y& [/ |5 a; b- p+ Z& F! fstatic int __init led_platform_init(void)
  p7 z7 y! j9 F7 f5 t{
4 H- M& d5 M+ B% h! Y- M        int ret;
. {8 X' k5 R9 B1 N% x8 s#if 0
4 S# ~; X1 p" s0 b/ t( N* b, _; R        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);0 F+ d$ u, L! ~+ X! a1 l/ E5 ~2 L
        if (ret)
: T' t: E) R+ {. E4 B) i# y$ l                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
0 q9 {! a: o1 u6 \2 N* B                                "%d\n", ret);
8 o1 J3 c3 R$ I* r9 z( T#endif0 V7 t5 u: T2 \7 }& |3 Z
        ret = platform_device_register(&da850_evm_tl_leds_device);
6 y/ @, Z+ Z3 h        if (ret)# O3 d  e, r7 ]8 V
                pr_warning("Could not register som GPIO expander LEDS");
% t( r# q- m  e9 g        else# A" A9 t1 L2 q0 C
                printk(KERN_INFO "LED register sucessful!\n");
5 B+ N3 ~  `- @
. w. w0 h+ j: x& X6 ^+ x# H( t1 J        return ret;
  j3 V/ e# E, s! J/ C  ~% Q}7 F) c& E  ~! x$ n  G1 c8 V
' U& M% e2 Z2 ~
static void __exit led_platform_exit(void)
0 R( J: H4 ]$ X9 }6 d{
% N) b* Z2 L* |: c' d" M        platform_device_unregister(&da850_evm_tl_leds_device);
$ o7 e, W! J+ A& F5 ]+ f( A- V4 L! j
        printk(KERN_INFO "LED unregister!\n");
$ I! H, H; K9 p; o& n" T}  Z% r, a. W; e; i9 U) `
% J( i! w0 b' g& \; ~7 j( x
module_init(led_platform_init);
  \- C  O! T, |( m8 H, }module_exit(led_platform_exit);9 g( K" D; ~* r$ I' F3 m( n
1 V, e; g) V% ]
MODULE_DESCRIPTION("Led platform driver");3 h) U8 j+ ~$ |( t/ B! V: R
MODULE_AUTHOR("Tronlong");
! E- \1 \6 Q8 JMODULE_LICENSE("GPL");+ W( q$ ?5 M! Z
4 E% i# u: ~6 H" L6 r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-10-3 14:11 , Processed in 0.040286 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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