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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* C3 K- L# [2 {/ m" o# ^/ j#include <linux/init.h>' e, D2 ]5 v: l
#include <linux/module.h>3 m3 l$ S8 w0 Z* Z' M* B
#include <linux/kernel.h>
1 v* b$ r+ A1 m! t' j) @2 A#include <linux/types.h>
: ^5 X8 m9 u" A/ W& V1 H- T7 z#include <linux/gpio.h>& `: |9 g" W5 o7 P- N
#include <linux/leds.h>
' |4 v  m- F& U) w. C+ n6 z#include <linux/platform_device.h>% f" l5 _5 H" ]* S9 \
# `- }% Z' x2 I: o( C
#include <asm/mach-types.h>* |( f% O( X! O! a* _% ^& B9 G
#include <asm/mach/arch.h>. @: i4 y' N! ?' \& C
#include <mach/da8xx.h>
4 c# v5 I4 l2 O/ p7 x1 }#include <mach/mux.h>
: v3 I6 j5 U5 g- ~$ d9 u
. r; j2 V1 H$ f: o) [, z* ~#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
' q- N) l( Z! o#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% w* h5 h6 h, L- \& K#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( k" U$ `7 H! C1 ~5 r$ _, W6 L* O#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
7 z7 N& a) O- X, |& C9 ^3 t, \+ Y! J; @( R; Z
/* assign the tl som board LED-GPIOs*/
+ b  Y/ [' h8 u8 R! b5 \3 vstatic const short da850_evm_tl_user_led_pins[] = {& y$ Q% a# S6 a8 Y- n. x6 Y
        /* These pins are definition at <mach/mux.h> file */* O+ _2 B2 f* I/ e' r$ L) e
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,) w9 B$ v9 e- u
        -1+ ^: @$ z6 E! c) r0 ^" I
};0 X) I+ ^8 T) M2 Q  B
; C7 ~' J! |8 r4 l) d" V8 k
static struct gpio_led da850_evm_tl_leds[] = {$ m( x/ Y2 e; w& K5 }7 G: V- |- J
        {
* c% J9 Y4 q8 g1 M) u0 f# {                .active_low = 0,
0 X4 ~& `" G+ m                .gpio = DA850_USER_LED0,
8 Y; D8 W/ p, Y) R. V4 }( ]                .name = "user_led0",
  y; d# E, Z- V                .default_trigger = "default-on",5 {0 J; j3 B+ K) I, ^' S
        },
! w! z$ D4 D& v2 ^        {
* c! M* s6 j, O" v                .active_low = 0,6 `7 o7 B5 e9 I- [
                .gpio = DA850_USER_LED1,
7 ^+ C3 @9 y7 a3 F; r3 w: P                .name = "user_led1",
# @  @! {  c5 ?6 N# a, ?                .default_trigger = "default-on",
( ?8 O0 z7 T' K9 H        },
( F( Z: S! Q/ w! c# p, |        {( A3 S1 v2 [9 J/ b+ L+ T% X. m7 l' ^
                .active_low = 0,) l" X/ w* e. Q( @2 @4 G
                .gpio = DA850_USER_LED2,' a! I! ~; g: ?
                .name = "user_led2",
, f4 L8 K( f; k  |  ]' @. g$ @                .default_trigger = "default-on",. j9 L: T1 V! n
        },
% ?' s$ i: N$ N# V' J5 A( D        {
! f0 O: B8 @  a6 j                .active_low = 0,
  I! [2 c6 D  \9 I( L, ~6 j  |                .gpio = DA850_USER_LED3,' g/ @& d) W* p' o( A4 O) g9 {% o
                .name = "user_led3",
! n/ W" v- T$ t) N% z                .default_trigger = "default-on",7 C9 C* t! q# {. ?" {" ], T- N
        },; S% m+ u. i  {" T
};
  u6 }. _1 P3 @  {- }; n- W! G1 o8 K  Y. T: X
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, }% V' m" |# X7 T2 u( P        .leds = da850_evm_tl_leds,# _) {. k% P' X6 F
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( z5 a/ \( g% Q/ c
};% ^, I  A# \# n3 L& \4 t

% R4 k( N  n  h3 x$ [' O( @1 M4 ystatic void led_dev_release(struct device *dev)
0 H: F+ I# [. E  C/ M{
5 {+ Z3 o3 Q3 B1 z9 h; i};
, R8 U( P( {' [* u0 x. L7 f! C0 ^  Z% G8 L* a
static struct platform_device da850_evm_tl_leds_device = {9 q6 o& t( Q' X( d. d! M  v. w
        .name                = "leds-gpio",$ V! H- X9 m0 P- S8 r7 q
        .id                = 1,
' v2 O6 v' `/ Z8 {& C        .dev = {- H0 E1 |% \& N6 N, e2 R5 u
                .platform_data = &da850_evm_tl_leds_pdata,
( k+ U9 ^1 v1 N* z$ h0 ^7 s                .release = led_dev_release,
9 a6 _6 R3 _3 |( j" ]4 c        }4 j# P+ R9 b, L3 N$ v) Y
};
) b+ I' I$ H. {: H- B
, x1 k( ^1 Z! V( J# ~static int __init led_platform_init(void), y6 z) R! R7 ~  p
{
) E% A5 c) x. X4 t        int ret;. U$ E3 S2 t( U' o/ S$ }# ^1 o
#if 08 w# f4 r1 e) H. e: Y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# y8 H7 p' q; j* R0 c: K
        if (ret)
: n4 P  b7 f  L                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; a9 k: E% w2 a) i& g
                                "%d\n", ret);1 N& o, J% l3 w) m
#endif
! r! t+ l8 W: L( e5 Q5 B0 T6 {        ret = platform_device_register(&da850_evm_tl_leds_device);& o3 Z6 f& _" n* Z1 f8 ~
        if (ret)
" w- R# g& T4 N* I6 \                pr_warning("Could not register som GPIO expander LEDS");
6 o( W! q5 ?3 B8 D        else
" F! R1 `% u8 l# V6 s                printk(KERN_INFO "LED register sucessful!\n");
" L+ [, _" `* F) y! P* g
; U" {1 _7 e& w/ k7 a* z2 g        return ret;6 O: Q; h( L$ P1 J
}3 j. I2 z) R4 [2 T$ S1 Y
% f1 z" d3 l$ Z. O: ~  @, ]
static void __exit led_platform_exit(void)
# j* t: d4 g% l/ x' J( l4 u  }{
" W7 o7 {  p4 U9 p4 @- m" N( R8 ^        platform_device_unregister(&da850_evm_tl_leds_device);) {: ]/ b8 I7 p" }" w) D

# M8 t8 N) L  ~7 ?$ G/ C0 Z# T        printk(KERN_INFO "LED unregister!\n");. P5 a% t5 T8 z+ z0 N" n, S! H1 \) K
}; Q8 Q: {5 Z* }! f

4 Z8 M. [6 d$ e! h9 {" Qmodule_init(led_platform_init);* L) v$ \# c& q3 t. I% V6 c
module_exit(led_platform_exit);
; F" k$ j3 c! V# ?7 R/ R& @( f0 O) N! g& R- @- F7 Z. E6 G
MODULE_DESCRIPTION("Led platform driver");5 a1 f2 X  w* B6 F  ]
MODULE_AUTHOR("Tronlong");4 H9 l  X: t: Z
MODULE_LICENSE("GPL");
: B4 b1 O/ {4 D- `
! p: O2 L" O' d3 q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-21 19:23 , Processed in 0.042141 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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