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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ z# w+ ]8 u+ b5 J8 N
#include <linux/init.h>
8 v" L* g  B9 F9 t#include <linux/module.h>
# M+ }+ m9 {& C( D5 I#include <linux/kernel.h>( W4 `; w# H! i( V* c  s! S3 R9 u
#include <linux/types.h>
; |  r+ s+ H# m2 u8 `#include <linux/gpio.h>" r6 G3 S) @& L, E7 q
#include <linux/leds.h>* f1 R& d& {, @7 }. p& Y+ j
#include <linux/platform_device.h>
: s3 Z* J; s9 X- _+ l1 E+ j0 l; k  Q8 g% S  B8 D" i1 l
#include <asm/mach-types.h>
. A$ ^" Q7 y' ~) p+ t3 `#include <asm/mach/arch.h>4 v5 f7 K1 z1 j0 W- a# `
#include <mach/da8xx.h>! F( y# W+ f$ [% E" G% }! ~) C
#include <mach/mux.h>
& O" Z% [) K, I- z9 E
  B4 c2 q, J2 r0 I#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  r6 R% g2 A- t#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 A4 w) X2 ~( T; ]! l% n. t1 K1 F( D#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 {5 X8 [1 t- Z0 ~
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# ~( z' u1 s; n7 G1 x2 ]! A& s$ E1 y8 k# e
/* assign the tl som board LED-GPIOs*/
- _7 [! z, z9 v( V: Hstatic const short da850_evm_tl_user_led_pins[] = {" k) |1 q; @+ [) N( h' o
        /* These pins are definition at <mach/mux.h> file */
6 U& |1 d8 a+ Q" S        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% F8 v* x# c8 B7 c9 O0 ~
        -1
6 A; ~1 p; ~! r( E7 P* o};- \* e" g9 l+ J$ M! l" ~

# I/ f4 o" w! Y; h) Zstatic struct gpio_led da850_evm_tl_leds[] = {1 o3 d) t6 j. s5 R) a+ e
        {
& l" W7 ?- q2 P" ?                .active_low = 0,. s; `+ `6 k! c/ z
                .gpio = DA850_USER_LED0,
" ~8 \) ^3 a% Y6 o. J( y5 Z3 T                .name = "user_led0",* g" F0 k1 p# Y5 T8 x% Y8 w8 R
                .default_trigger = "default-on",
# B" e2 i8 x0 b: d3 b        },
' r0 u) f! u8 q- i6 W3 \- l        {
8 E% p8 t( m2 \& X3 d                .active_low = 0,! P1 `- W7 D, Y0 S6 l5 H
                .gpio = DA850_USER_LED1,
$ r' W6 [0 k& F9 X8 n6 \                .name = "user_led1"," Y9 T* X* d, n( {( S$ h7 V
                .default_trigger = "default-on",
6 `: ~6 z# e3 E' [! J& J/ N+ J        },
5 @- x. Y+ U1 f        {
9 k* w; z% J3 V* l  l                .active_low = 0,! e! R0 I2 ?# O" s3 w
                .gpio = DA850_USER_LED2,
9 D. j+ l- Z" w5 T" ]                .name = "user_led2",
( ~! M  ?; c/ [4 F: w% a                .default_trigger = "default-on",1 }) }4 y! y0 V; Y, y9 i
        },) [7 R6 r! h0 H/ D  N& E  W
        {
: A. P- K/ O: h7 T6 v                .active_low = 0,
- U# f: r0 r" {* {3 U  k                .gpio = DA850_USER_LED3,4 j, ~# v4 l; [% @
                .name = "user_led3",
5 y6 ?: H1 W! K- d( C% [; c% q                .default_trigger = "default-on",6 O+ K% m! Q% Q! O3 l* b
        },
, s5 z( z$ _- K/ k. c* `};& @' i. l5 J& ?& r5 h- k. \% l

" C2 p' ?8 S* h+ n' b/ c8 gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& @$ T$ M  _  _$ Q% o; n% a        .leds = da850_evm_tl_leds,
$ U$ E4 x# c3 b5 B        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% ~) v3 N9 u* }  W/ ?, X
};4 j9 \! W3 o, Z# g  L, W6 n
" W! r0 U: h" S8 `; m) o
static void led_dev_release(struct device *dev)
. o: v6 E" I' a# u, A+ N{
: @: o8 f5 z! W% N- I1 D. [4 E};
+ z  P7 g& l- n) H' V6 e8 w1 F+ F& Y, Q: X
static struct platform_device da850_evm_tl_leds_device = {" h& C( j$ O- D1 C$ f- Q
        .name                = "leds-gpio",- \& Q0 M' L* X
        .id                = 1,2 x8 M$ _( j# I6 h! E' Z- ^$ A' W6 u8 w
        .dev = {' M  l. y6 J$ I
                .platform_data = &da850_evm_tl_leds_pdata," D5 k; U6 h( b0 T# x5 n" ~: B
                .release = led_dev_release,
: n: ~5 b+ Q) `' G) J2 n6 S        }0 d8 }% F  u* E2 K' V
};7 f: @& g9 c* m1 o; J5 y2 S. o
- C8 a& p5 n% Q6 N! _; n6 n8 @3 u
static int __init led_platform_init(void)
; m( G3 p/ L# ]- l{2 b! v4 C# m$ I  y+ r
        int ret;" {- ]* \& j9 B4 z4 K; h1 S
#if 00 Y; J! _3 j" N0 g
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: G0 z& z$ {1 z
        if (ret)
& y; D& j3 Z% v4 v$ t7 x* _" w7 f                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 Y; S! o* G9 h
                                "%d\n", ret);: ^- b5 @* r, {# o& t
#endif
' h5 q5 z7 X! x! w% d+ b        ret = platform_device_register(&da850_evm_tl_leds_device);
8 I) w# j7 v0 [, U' p: x$ v        if (ret)+ @. E5 G8 r3 W" \3 e2 g
                pr_warning("Could not register som GPIO expander LEDS");# {8 v* Q1 ~2 b' z9 p0 u$ {, B* ?" ^
        else0 x! o( P  \6 c
                printk(KERN_INFO "LED register sucessful!\n");
3 U/ k& B' e# K( _$ ]; S$ ]+ s1 c" K. Q: {6 H
        return ret;! I( i1 v$ B5 I/ g8 x  L9 u
}
3 S- O# n2 U* O
% `9 U0 }  w' G% y5 m/ T- N1 _static void __exit led_platform_exit(void)
& r' W0 S8 M( r{) H- e. C( ]* |6 \% d1 }# ^& C8 |
        platform_device_unregister(&da850_evm_tl_leds_device);# }" T4 t6 n. }

9 A% _5 g' t( K) ]        printk(KERN_INFO "LED unregister!\n");% v" [6 r0 Q+ c# b3 x7 K- X5 j
}% p3 @! o! T: i8 V! t* H& g% M
2 D. K2 z0 p1 ^: @' v5 w+ R
module_init(led_platform_init);
3 O5 Y. h) S. umodule_exit(led_platform_exit);
! [2 Z! ^# {( x; t9 k0 u6 R
, E5 o5 }' G( W  F8 }$ OMODULE_DESCRIPTION("Led platform driver");
* R  p! \7 a# S! a' \7 uMODULE_AUTHOR("Tronlong");
+ B; j# F6 f/ Q; N1 s; e5 t: F" nMODULE_LICENSE("GPL");1 t7 P5 V) F: F5 B+ z: O( T% _
* D! l& K' H% \0 w' X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-31 17:28 , Processed in 0.037028 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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