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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
: Y0 t" g$ G% n! h: q#include <linux/init.h># V7 l& X5 }1 u1 E7 r4 l  g
#include <linux/module.h>
5 u) }+ b8 X$ R& [#include <linux/kernel.h>+ ]3 ?6 g+ K8 v1 h
#include <linux/types.h>
( I0 M- Q  X7 n8 ~9 |3 e#include <linux/gpio.h>
* o! ]4 V& t, u  P3 C- e6 h: _#include <linux/leds.h>
1 o" u8 d  ^4 Q#include <linux/platform_device.h>
( k, q+ F" C+ J$ \+ v
5 \- H( a  N+ x' @( c  }/ ]* C#include <asm/mach-types.h>& O8 M+ \9 H# Q+ s' {8 ?
#include <asm/mach/arch.h>- Y% v) k% p- O4 F
#include <mach/da8xx.h>
% t6 G$ K# E- c+ {, `#include <mach/mux.h>! S$ K& w' [) J6 \! b; Y! k
9 u4 i3 [' o6 ]0 }4 ^4 X
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ a2 `$ S9 o; }3 y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ v$ h4 j, I, _% J#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): C7 E' [: P. M
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
' ~8 {6 l6 C  _
: }; S0 Y/ B. u& p1 [8 b; L  B/* assign the tl som board LED-GPIOs*/8 @( J' s, C% V" `) F
static const short da850_evm_tl_user_led_pins[] = {
- n  i8 h- F/ \% e- w        /* These pins are definition at <mach/mux.h> file */6 }+ ~# y+ f! P$ [5 @2 ^
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% ~1 [& {) |4 ~- P: J
        -17 i$ S" ^# _1 s$ H+ [
};
5 r2 a  f1 z. o. G: [
3 t0 l- ?7 h2 K, n, Q0 X1 ~static struct gpio_led da850_evm_tl_leds[] = {+ n# [5 S: o- u! M+ n
        {
4 H0 w% X8 c1 f% F3 U5 K                .active_low = 0,/ {4 U4 E. a+ i9 s! y/ i! `
                .gpio = DA850_USER_LED0,
! v% j# ~& D5 H                .name = "user_led0",
) ~( {# h, V& M& J0 D                .default_trigger = "default-on",
$ C' M2 H7 Q7 r1 U# ?% g+ Q        },
, A+ M, ~6 C  n- |) Q        {
. D- y) x1 d1 {/ ]/ J- r                .active_low = 0,
9 Q  O$ t/ R7 \, R2 z* _4 e! G                .gpio = DA850_USER_LED1,
# A; _2 `& }1 l* K# ?                .name = "user_led1",9 M, [4 T- f. m, c1 G2 q
                .default_trigger = "default-on",
; H. o& M1 R" q* r        },
6 ^. `0 I9 v5 ^+ ]2 Q        {
& p- Y! r+ X6 P  B: v                .active_low = 0,) q  j; |2 N0 f& Q% @: |
                .gpio = DA850_USER_LED2,
8 z5 N$ g. ~8 P                .name = "user_led2",
" c) F  X  T( `4 [2 T6 F                .default_trigger = "default-on",
: ~- Z' \: l6 s. [4 k5 Y1 D+ j        },
) G7 ?! ^0 G& x; V1 J" N1 x4 F        {
' o& r" Z) @3 G. H                .active_low = 0,6 a# G0 r, o) [
                .gpio = DA850_USER_LED3,
6 K! D: c  C' T! C; R" c+ \                .name = "user_led3",+ d4 r* l; y+ Z7 ^, z' K
                .default_trigger = "default-on",
8 g) t6 q$ I4 H( E# J4 s6 k        },
. D7 R/ |/ ~1 O/ q- a( {5 r! t3 B};& F- P0 [# }) e! w' N& g

$ q+ ^; E! G3 [, z$ M. Ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, R5 @5 r! ]* e, }# f$ n        .leds = da850_evm_tl_leds,+ y7 q9 f$ z  {$ e! _* @7 y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 d, `3 X# a& N3 x* Q1 x% ~
};
% R5 _# o7 P- }: S3 B  K% I0 T) H# z0 W8 L0 N9 R
static void led_dev_release(struct device *dev)  M  f  @$ W0 C3 u' y
{
" v- `6 Z* M! x3 W% _5 C};( w& ^! d! ?1 L8 @3 B7 X

. z+ \5 z9 u2 ~+ H- K0 Bstatic struct platform_device da850_evm_tl_leds_device = {
3 N# \" k5 A/ [% V, U+ N+ d        .name                = "leds-gpio",& K" J* e4 f& f+ r# Z
        .id                = 1,
$ n/ l1 P' T& O        .dev = {
- |# d0 d8 j& x- m! g: T                .platform_data = &da850_evm_tl_leds_pdata,
+ R9 G' [. a4 j. l  R  c                .release = led_dev_release," d# I4 q3 x4 J3 a7 h: ?
        }" V9 ^7 [6 Y/ P
};
9 C; L& }  D. t7 P
7 \# p2 e" @' w$ O( Fstatic int __init led_platform_init(void)8 R0 d, n2 r/ w+ C& P( k
{$ f- {+ l: Z% I4 R2 Z7 ?
        int ret;
" r2 I2 Y, q" s; \( x: b) K) C#if 0
5 |* p9 x: G; I# b        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: U+ ], j; v: [  @: h$ s. \
        if (ret)  O" {- R! d( _( J7 N# D
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! p4 T- R  a4 N3 s9 q! s
                                "%d\n", ret);
6 Q3 m( A$ V8 r+ W: T' j#endif
; J+ L8 j& l1 d+ n* Q. Z; Q        ret = platform_device_register(&da850_evm_tl_leds_device);
' M. c2 b, G% S6 i5 J1 w        if (ret)* U- x- Z9 W# e2 ]; L6 O
                pr_warning("Could not register som GPIO expander LEDS");
# x& \8 N8 y! s2 F4 m        else
: K: P  i8 a( A9 d0 N* r* Q8 F0 w5 x                printk(KERN_INFO "LED register sucessful!\n");
# R6 g8 Q) M1 o( b! n: J- A5 j( A! X+ H0 ?* A: m% `6 v" E0 E% V5 H( l
        return ret;
/ b% L  L2 ]2 I3 k}
* }5 I( R& b$ l& Q  ^+ F+ d; j2 E
0 e- t5 i+ ^9 I  d4 w2 Astatic void __exit led_platform_exit(void)
0 g7 L  f+ k5 D" W8 C' x{
& N6 Z$ v7 p3 D, o' M7 x- e        platform_device_unregister(&da850_evm_tl_leds_device);& S+ [- Z% ~& a. f& n

/ q' T2 v0 p5 ~- z, _# N/ {; L0 ~        printk(KERN_INFO "LED unregister!\n");
- M& \9 w4 W2 H4 z}
  I! q1 t3 W+ e6 F5 O  y. D
0 O  ^- M6 X: ~1 E1 n$ Y# P: Hmodule_init(led_platform_init);
9 b; D5 |! q* z& T- U, Smodule_exit(led_platform_exit);9 Q2 l! S" N2 M! x- W( B: m) W0 P

1 I( P3 N2 V. X: R5 ~MODULE_DESCRIPTION("Led platform driver");5 Y. D1 W2 {2 G- k- M
MODULE_AUTHOR("Tronlong");# Z0 a( @$ {) V, B6 @0 f
MODULE_LICENSE("GPL");% R, m# ^+ Q9 l6 t
7 l7 ?$ @; p! t9 U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-9 17:44 , Processed in 0.041768 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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