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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; R/ E1 H/ [4 a
#include <linux/init.h>
* s8 N8 c& D( B: D  g7 ?: ]* q#include <linux/module.h>
, ~/ c3 K; k0 j) ]% l1 b2 W) W#include <linux/kernel.h>) o8 L( c# Q' r  d
#include <linux/types.h>* S* Z0 ]- K/ L! q& }: @2 H- v8 a
#include <linux/gpio.h>( _* }1 q5 O: T, u# P
#include <linux/leds.h>
. m- [1 q, J5 p#include <linux/platform_device.h>6 N2 e8 D) T1 H: z

+ L8 E, H' Z7 @  B) P( h9 J#include <asm/mach-types.h>- K& x/ x5 ^  _% ?
#include <asm/mach/arch.h>2 O% j' k) y8 L- o+ G* X1 g7 C0 X* i* C
#include <mach/da8xx.h>
( k0 ?( o1 X: v9 ]; z( P#include <mach/mux.h>" z# B3 m- @0 x/ u8 d, m
( c% E+ g1 h% V
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, m* b4 S* r+ Y4 _) D) Z. _( T#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); i9 E; \; _; X9 l# Z. h
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  g) b( h: j  t#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ J' g( `5 c. O3 e2 }1 R; `4 e) Q, X& K# j
/* assign the tl som board LED-GPIOs*/+ O  f/ p/ l! [( ^
static const short da850_evm_tl_user_led_pins[] = {
% L& L  Q" W+ L+ q& o, [7 R/ @% u( ^        /* These pins are definition at <mach/mux.h> file */
2 Z# l2 A0 ^1 k" H" B8 p5 N        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" B# o- X7 Z1 h4 q3 `6 Q        -1
( ]% u& m4 a1 D};
% `% I7 \; C8 p1 T' x6 e* T; i
- B% b4 v+ G/ w/ Q% g4 hstatic struct gpio_led da850_evm_tl_leds[] = {6 U' k- Z4 N5 I( f0 w# B! }+ q
        {0 X* a, ?. c; F; x
                .active_low = 0,0 ?" K4 V( a5 C
                .gpio = DA850_USER_LED0,# {' ^' k" D; ]/ V9 c; p% }- v
                .name = "user_led0",
5 C4 X% V1 ~  p8 }. W                .default_trigger = "default-on",
  N7 T) r: {8 |) `/ ~6 L4 P        },
' q* A# K0 f( v0 h+ P        {
; h! J3 L+ t$ o3 Z6 t                .active_low = 0,: ?/ f1 z. O& }: u$ X  u# a
                .gpio = DA850_USER_LED1,( h4 Z  F# B4 Y- Z# |( P; L1 D( n
                .name = "user_led1",
9 J  O+ p& s+ M: R0 C3 Y( x5 ~                .default_trigger = "default-on",
2 u8 _$ g9 d( `' G4 V; G  X        },
8 z: A5 Z. I' p# [# c3 n        {. E* _& Z& m  h7 d3 Z
                .active_low = 0,
: ~- `& @- p9 [3 v/ M                .gpio = DA850_USER_LED2,0 o+ b8 H4 K" b, H8 [; W1 B9 @2 h
                .name = "user_led2",+ t" a6 P, N( a' F: z! w8 v( z
                .default_trigger = "default-on",
  r. D6 u: N8 A+ i* {7 u3 Y        },; E: V2 \, u7 i0 N; w6 ?- X) |4 d
        {! p# i; R& L. c7 S! Y# a
                .active_low = 0,! s6 C/ G. m2 J: {4 _- m
                .gpio = DA850_USER_LED3,
& ^; S7 L1 Y% S                .name = "user_led3",
6 i8 d% K: [7 d/ e' W/ i+ z% R                .default_trigger = "default-on",0 @+ F9 A; ~0 k1 h
        },
, K! l9 J# v* q9 e1 y1 p};
0 a% ?# E* s7 D' N+ e
4 ?7 U" J! T+ g' P/ O5 Wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
8 [9 U9 n6 v5 ^) ~5 `* P& f        .leds = da850_evm_tl_leds,
$ E+ W$ j8 V: K8 h. l        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' S. c" ~3 w( f
};; E0 ?8 d! [  x6 l* g
! i5 O$ }: N% D1 K/ C
static void led_dev_release(struct device *dev)% Q2 f8 v2 y" K' J1 M% v
{- G! P' ]; {7 ?; {
};
, b& |9 t7 {; z' I; H3 v9 [( }0 k
3 y; _" J4 {1 x& P6 H  O$ rstatic struct platform_device da850_evm_tl_leds_device = {
) h- S( S3 b$ a5 h. v) ^: m        .name                = "leds-gpio",
! A- T/ F% J& h! O/ f        .id                = 1,
+ Q; W5 l7 G; F! X6 H        .dev = {
: r, ]" }! H; N  U! k                .platform_data = &da850_evm_tl_leds_pdata,3 E) {+ e5 g/ q! {) g
                .release = led_dev_release,9 p* Q" ]& {/ X' i  R" e
        }
* [; Q) [6 q# [2 y* Z};
3 M, [% F3 j- D) B. M* w6 C
; ~, G1 L4 W. z- {/ W# n) cstatic int __init led_platform_init(void)
6 m& v3 R( G6 D( I, N/ l{2 ~" u7 ]1 V( ?1 K2 g9 c
        int ret;
3 B8 C! U$ V$ b9 V#if 0/ q, N" c; M( z3 q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ T! v- ?, a, p# @( @' n        if (ret)+ w7 N4 D0 h; F" w
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; G' y( f! B1 e. N
                                "%d\n", ret);7 P) t+ x6 E# n5 M# P5 g
#endif( \8 V( @: V, t$ B/ i* {
        ret = platform_device_register(&da850_evm_tl_leds_device);
) w, v* c3 A/ \1 f9 x, I4 d4 u3 c        if (ret)
! i* L' k# r; [# ?- D$ |                pr_warning("Could not register som GPIO expander LEDS");
' t; p& S3 f5 c        else: F; c* \# a- z: J
                printk(KERN_INFO "LED register sucessful!\n");& Z5 J+ t$ s( [; s0 h  G

$ {6 }2 s( X5 O7 |        return ret;
) q7 |9 C/ l& E1 f4 t) n}
# U* W) ^% ]/ }4 w  Z+ j0 h' n& o: o. b0 p7 S
static void __exit led_platform_exit(void)
8 }# ]) D: a6 D{
/ b, E- c) Z9 [- j4 t        platform_device_unregister(&da850_evm_tl_leds_device);
  c$ k! U  O9 ^4 b0 E1 f
9 t7 f# |  j( a0 E( t  Q        printk(KERN_INFO "LED unregister!\n");
; y" f+ O9 _* z% U/ s  g}" r: k) l$ T# _' E

; n& @) V: f& D6 Gmodule_init(led_platform_init);, C( W! u2 v5 j: E
module_exit(led_platform_exit);  g' R6 ?; L2 v
$ T5 t( d- R2 V6 j' Q
MODULE_DESCRIPTION("Led platform driver");
+ w% ]2 N  G0 `3 cMODULE_AUTHOR("Tronlong");
0 u' U4 ^- f4 x; y' j( K3 t6 }* ^MODULE_LICENSE("GPL");) j3 m  m/ P( N4 W6 i; `7 r

1 M3 f2 A! J* \" W: b8 M7 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-24 16:08 , Processed in 0.038208 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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