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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- o1 J9 M2 m) p! I  q7 j5 f6 i#include <linux/init.h>2 G2 i! q0 A% `: I7 a" l) }+ ^0 {
#include <linux/module.h>
9 m, Q* s) [) i* y2 G6 V#include <linux/kernel.h>$ ]! F) m8 I6 U. D
#include <linux/types.h>) r+ u% m+ {' f
#include <linux/gpio.h>
% L5 i  ~# Q6 F#include <linux/leds.h>7 J9 I* V/ O% b( F" G) S7 {% l
#include <linux/platform_device.h>5 w( j# V% O$ ~4 ]
" U5 O7 Q7 `/ l7 D) U
#include <asm/mach-types.h>) ^, k) p7 v4 E9 H, E  J8 Q, h
#include <asm/mach/arch.h>* ?4 A5 l+ {/ {+ h
#include <mach/da8xx.h>
6 J4 l; e9 a6 s4 `; s! a  f#include <mach/mux.h>. z2 L! z  u  @, {
- O- x+ m! F- d1 ?9 \
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ l4 E/ Z5 K' i9 {6 Y8 q( ^#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
! K& v  B/ ^9 U4 a) x#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ [' ^- n  l7 D2 V/ M
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): w. I( p# e9 u2 Y5 x; d5 r
7 {. z# p8 i; f6 p: e4 U% \
/* assign the tl som board LED-GPIOs*/0 s3 O, ^! L0 T0 p! y0 n4 K4 z4 K
static const short da850_evm_tl_user_led_pins[] = {6 U+ I- I7 U/ M/ g# e
        /* These pins are definition at <mach/mux.h> file */
3 i! _7 H; E8 I# v) Q$ z) j        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,9 C! R, [$ r+ M. H
        -11 D9 [, [  `, s$ Q/ j& m- E
};: Z0 X, W1 L5 @* T( f3 N; `2 R

4 w4 O$ i* O$ _. O  h9 Dstatic struct gpio_led da850_evm_tl_leds[] = {0 Z6 X8 B4 @/ S; Q1 F' P1 e$ `
        {
/ H1 d( O4 |$ f& B- e5 O* w' C9 N                .active_low = 0,
" p: w, \; A2 K7 i# i3 y$ T0 w                .gpio = DA850_USER_LED0,
8 |( N) _7 ~6 x( Y2 B* r  @                .name = "user_led0",
: f$ k# O" `' ?" m9 _* F/ _                .default_trigger = "default-on",
' X& G: T- _- [        },9 ^, E! e  h5 l$ L' K
        {
6 e. I: D; [8 y+ S. d                .active_low = 0,! E2 C# ?: _1 Y- G
                .gpio = DA850_USER_LED1,
4 a/ X) N9 q) G# r' m. @# X# n+ R                .name = "user_led1",
! o' V5 e( p# u. |# N9 r$ P                .default_trigger = "default-on",
5 Z9 ?; M5 }. u( o0 i        },1 J  Y" b3 F& m* w% v
        {  E# Y: s! z9 M' B; N/ {) }; y$ \, a) a% K
                .active_low = 0,( g0 K; r. H4 P1 J7 q9 `) ?
                .gpio = DA850_USER_LED2,
* D7 |0 R5 `8 A7 l3 Q( f                .name = "user_led2",
% Z6 c' v! S' W                .default_trigger = "default-on",7 |2 R/ y7 ^& b1 C, N' k5 H
        },
% x7 k, M+ ?2 A0 y4 a        {/ c- O0 R% i8 s; h7 _  F7 ]
                .active_low = 0,
9 S5 ^) d& T  N8 J! |3 z! `+ V- n                .gpio = DA850_USER_LED3," d: e8 I5 q0 r, ]1 O8 L
                .name = "user_led3",
' D, B; I6 q) J; E2 X1 F% W- Y4 `( X* |                .default_trigger = "default-on",5 E% V5 v) A( k# }2 |! k5 D
        },
( m$ H8 n; j# ]- S6 J: G1 Z2 j};
3 u* H1 ?5 z/ F* i5 @* m/ i
+ X4 s. Y7 h8 g+ @; mstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ b% O& R: m( \7 J" @        .leds = da850_evm_tl_leds,
0 u! ?3 R0 m6 O8 {# M4 [        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),7 h$ F/ Z/ d$ U9 f5 O
};1 Q2 c: G1 s! L1 d
9 A  {+ v/ [, D
static void led_dev_release(struct device *dev)5 _7 E: H/ Y2 M
{
  `: D# U2 L; t, s5 E9 W5 l};- X. ?: v- d; W

# Z. T8 |% P' I% e% Astatic struct platform_device da850_evm_tl_leds_device = {8 M1 Y1 D) [% p; t' U# X! C) ?' e
        .name                = "leds-gpio",  f9 H0 U- B9 s7 N+ R9 R0 W
        .id                = 1,
0 ~3 I% i) M+ _        .dev = {
0 A' g- y4 N9 J  w1 n8 P! ~" M                .platform_data = &da850_evm_tl_leds_pdata,
" i- u/ E2 S& a& M# T                .release = led_dev_release,) R( O, Y) A2 K# p, a: u  P
        }
# n! S; b. q  s' C& G; M# p};
' F5 t0 s7 @, I. P4 [5 d! R
, D- h7 c* A. N8 D3 T3 [' Astatic int __init led_platform_init(void)
7 i) B* E' ^. R( Q7 X" ]{
$ H4 v4 t& k9 o. g3 \2 H9 K+ O        int ret;9 q# }/ [) O- O9 m8 n- F
#if 0, g* R. J. X0 x3 ^
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 A* n3 j5 ~% D0 D4 N; e5 B        if (ret)# q3 q0 s( R, W
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"5 @$ |: N( O( c' r$ [9 O1 a
                                "%d\n", ret);
+ F6 P, L5 H/ d' l#endif9 j' ^0 x, v" x% A7 S
        ret = platform_device_register(&da850_evm_tl_leds_device);& P+ s5 a' P. p/ L( b
        if (ret)
! @& _: c  K2 A# m( s6 T) |9 ?8 k                pr_warning("Could not register som GPIO expander LEDS");. a- V1 N: R9 ?4 e# e# b) U. ~9 y
        else
2 _0 v: ^" w) H; `, n! G5 K                printk(KERN_INFO "LED register sucessful!\n");, x9 w# N2 K3 r2 z

3 r1 h$ A4 h" Q8 @( o8 T9 ?$ h        return ret;
2 F0 p5 @9 u3 J% m/ l}7 L% a. F' v# _! q
* Q) M9 F* X' S. g0 |
static void __exit led_platform_exit(void)
( q4 ~. g3 {6 _' J) P8 `% ]{
" h7 \% D" j0 a        platform_device_unregister(&da850_evm_tl_leds_device);
5 F4 G1 O) v' c1 ~  u. G
9 ]6 B  N- i0 P  x& o$ {* a# `        printk(KERN_INFO "LED unregister!\n");$ Y' X9 t: c6 Z1 m9 U% h
}
) B* M1 G) v" ^3 [8 s1 q/ Y6 G7 p7 L# L
module_init(led_platform_init);6 S8 y8 [! ?5 S# d3 y
module_exit(led_platform_exit);& |! R; ~& m' M+ [8 F% ?1 y- o/ `
$ s6 N1 Y5 m2 x/ }$ W
MODULE_DESCRIPTION("Led platform driver");
6 }( q; y: s: HMODULE_AUTHOR("Tronlong");) d" a& a% \1 H1 u. @
MODULE_LICENSE("GPL");
9 {5 s" S7 l1 l! m
) H. v7 w7 T- C+ |7 `+ C
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-28 00:28 , Processed in 0.049351 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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